python regex通过re模块(而不是regex模块)获取文本的最后一个单词,直到一个停止词



我正在获取文本的最后一个单词,直到一个停止词。

想象一下我有文本:

first_part = "This is a text that with the blue paper"

从头至尾,我想得到";蓝纸";。

为了做到这一点,我使用正则表达式模块

import regex as re
print(first_part)
result=re.search(r"(?r)(?<=(s*b(an|a|the|for)bs*))(?P<feature>.*?)(?=s*)$",first_part)
print(result)

Regex解释:
(?r(=反向

$=从字符串的末尾开始

这很好用。但是我使用模块regex以便能够使用"regex";(?r(";意思是相反。

有人知道使用re是否可以做到这一点吗?我需要使用标准库功能来实现此功能。

如果你在前面加一个贪婪的匹配,在后面加一个懒惰的匹配,你只会得到最后的单词。。但不能百分之百确定这是你想要的。

>>> first_part = "This is a text that with the blue paper"
>>> m = re.match(r"(?:.*)(?:an|a|the|for)W(.+?)$", first_part)
>>> m[1]
'blue paper'

最新更新