2017-05-30 37 views
2

我正在尋找一個單詞(排除在外)與其餘單詞的最後一次匹配。最後一次出現的單詞和結尾

例 尋找單詞 「土豆」,希望選擇什麼粗體:

馬鈴薯,柑橘,馬鈴薯,李,梨等

正則表達式我放在一起是這樣的東西,但不能完全工作

(potato:(?!.*potato)).* 

回答

1

你可以找1個或多個組的「什麼其次是土豆」,而不捕獲它們,然後捕獲的字符串的其餘部分:

import re 
regex = re.compile(r'(?:.*potato)+(.*)') 
m = regex.match('potato, orange, potato, plum, pear, etc.') 
m.groups(1)[0] 

# ', plum, pear, etc.' 

而作爲一個加號,你不」 t不得不使馬鈴薯在正則表達式中出現兩次。

+0

承認,我還不清楚這是如何工作的,但是......它的工作原理!謝謝vm! – goul

2

這項工作?

potato(?!.*potato)(.*) 
0

您可以嘗試不使用正則表達式:

STR1 = 「馬鈴薯,柑橘,土豆,李子,梨等。」

str_index = str1.rfind( 「馬鈴薯」,0,LEN(STR1))

打印STR1 [str_index + LEN( 「土豆」)::]

輸出::

,李子,梨等

+0

謝謝。我正在尋找一個正則表達式,因爲有很多行,所以循環需要,如果去那條路線...雖然不知道什麼正則表達式parf比較循環 – goul

相關問題