最后出现一个单词和尾随

时间:2017-05-30 05:32:31

标签: python regex

我希望将句子中最后一个单词(排除在一起)与其余单词匹配。

实施例 寻找“马铃薯”这个词,期待选择粗体字:

  马铃薯,橙子,土豆,李子,梨等

我整理的正则表达式是这样的,但不能完全正常工作

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

3 个答案:

答案 0 :(得分: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.'

另外,你不必让马铃薯在正则表达式中出现两次。

答案 2 :(得分:0)

您可以在不使用正则表达式的情况下尝试:

  

str1 =“马铃薯,橙子,土豆,李子,梨等”

     

str_index = str1.rfind(“potato”,0,len(str1))

     

print str1 [str_index + len(“potato”)::]

     

输出::

     

,李子,梨等