0
從這個可能的輸入我想馬赫的粗體文字:正則表達式匹配順序
類型:驚悚,冒險,動作,2012
類型:驚悚,冒險,動作
我做了這樣的事(?<=Genre:).*(?=(, \d{4})?)
我的問題是,我把這部分(, \d{4})?
希望,因爲有匹配", 2012"
它會停止在這一點上,但它不會,它只是忽略匹配...
任何意見?
從這個可能的輸入我想馬赫的粗體文字:正則表達式匹配順序
類型:驚悚,冒險,動作,2012
類型:驚悚,冒險,動作
我做了這樣的事(?<=Genre:).*(?=(, \d{4})?)
我的問題是,我把這部分(, \d{4})?
希望,因爲有匹配", 2012"
它會停止在這一點上,但它不會,它只是忽略匹配...
任何意見?
.*
是貪婪的,所以它會消耗任何東西。由於帶有數字的最後一部分是可選的,因此它們都被.*
消耗。
有可能是做這件事的更雄辯的方式,但也許只是有兩個正則表達式:
(?<=Genre:).*(?=(, \d{4}))|(?<=Genre:).*
如果我是正確的,首先會在與數字的情況下匹配,但它會落空如果這種情況失敗的話,更一般的情況。
編輯:事實上,它可能工作做類似如下:
(?<=Genre:).*?(?=(, \d{4})|$)
這樣的.*
是不貪,但它必須消耗一切都交給無論是數字或其他的字符串的結尾。
這很好用謝謝..如果有任何方法可以用一個正則表達式,我想學習它 – a1204773
@Loclip看我的編輯 - 我認爲應該工作... – Jeff
是的,它的工作原理...好工作!! – a1204773