我總是認爲正則表達式是這樣工作的,但我想我從來沒有像現在這樣打這樣的情況,我不知道解決這個問題的最好方法。如何最大正則表達式非貪心工作倒退
字符串來考慮:
apple
apple
apple
cat
我想使用類似蘋果*貓,然而,這第一個蘋果匹配給貓當我真正想要的最後一個蘋果和貓。?。
請記住這只是一個例子,我在尋找一個通用的方法來做到這一點(即告訴我,只是與蘋果和貓之間有一個換行符不會在我的現實情況下工作)
我總是認爲正則表達式是這樣工作的,但我想我從來沒有像現在這樣打這樣的情況,我不知道解決這個問題的最好方法。如何最大正則表達式非貪心工作倒退
字符串來考慮:
apple
apple
apple
cat
我想使用類似蘋果*貓,然而,這第一個蘋果匹配給貓當我真正想要的最後一個蘋果和貓。?。
請記住這只是一個例子,我在尋找一個通用的方法來做到這一點(即告訴我,只是與蘋果和貓之間有一個換行符不會在我的現實情況下工作)
您可以在Python中使用基於正則表達式tempered greedy token這種負前瞻:
reg = re.compile(r'apple(?:(?!apple).)*cat', re.DOTALL)
(?:(?!apple).)*
將0以上不在下一個POS有apple
任何字符匹配從而確保我們的比賽中沒有apple
。請注意,對於比賽中的每個角色都會聲明負向預測。
你應該編輯這個更像你真正的問題。 –
這與貪婪無關。請記住,正則表達式引擎從左到右搜索字符串,並返回最左邊位置的第一個結果。 –
看看這個問題:http://stackoverflow.com/questions/406230/regular-expression-to-match-line-that-doesnt-contain-a-word –