【发布时间】:2021-03-26 05:13:57
【问题描述】:
我想使用正则表达式来获取句子中括号内的文本。但是,如果字符串出现两次或多次,我使用的模式会介于两者之间。我用谷歌搜索它,一些消息来源告诉我使用负前瞻和反向引用,但它没有按预期工作。我找到的例子是:Here,here
一个字符串的例子是:
s = "Para atuar no (GCA) do (CNPEM)"
我想要的是最后一次出现:"(CNPEM)"
我使用的模式是:
pattern = "(\(.*\))(?!.*\1)"
但是当我运行(使用 python 的 re 模块)时,我得到了这个:
output = (GCA) do (CNPEM)
在这种情况下,我怎样才能得到最后一次出现?
【问题讨论】:
-
使用
pattern = r'.*(\([^)]*\))'