我正在寫一個正則表達式來匹配來自IMDb音軌數據文件的數據。我的正則表達式大部分都在工作,儘管它們在我的指定組中混淆了太多文本。看看下面的正則表達式,例如:正則表達式太貪婪
"^ Performed by '?(?<performer>.*)('? \(qv\))?$"
的表演組包含字符串' (qv)
以及表演者的名字。不幸的是,由於記錄的格式不一致,有些表演者的名字被單引號包圍,而另一些則沒有。這意味着就正則表達式而言它們是可選的。
我試過使用?>
組說明符將最後一組標記爲貪婪組,但這似乎對結果沒有影響。
我可以通過更改演員組來匹配小範圍的字符來改善結果,但這會減少我正確解析名稱的機會。此外,如果我只是排除撇號字符,那麼我將無法解析,例如包含撇號的樂隊名稱,如埃利亞的孤獨朋友樂隊誰執行了奔向你的生活特色生化危機:啓示錄。
更新:下面是正則表達式應該匹配的示例輸入行,根據要求。其他格式也呈現,我現有的正則表達式不會處理。
" Performed by 'Carmen Silvera' (qv)"
你可以舉一些例子輸入嗎?你的問題有點混亂。 – 2010-06-14 00:12:04
是否每個記錄都跟着'(qv)'?如果是這樣,爲什麼最後一個分組標記爲可選? – Jay 2010-06-14 00:35:23
...如果使用'^執行者'會發生什麼?(?。*?)('?\(qv \))?$'?在演員組中添加一個問號以使星號非貪婪。 –
Jay
2010-06-14 00:37:53