我是我们Qt。我有一个专门查找函数调用的文本字符串xyz.set_name()
,我想捕获此调用的最后一次出现,但如果包含它的行以#
. 到目前为止,我得到了匹配函数调用的正则表达式,但我不知道如何否定#
匹配的行,也不知道如何捕获最后一次出现,不知道为什么所有匹配项都放入一个捕获组.
[().\w\d]+.set_name\(\)\s*
这就是我想要它做的
abc.set_name() // match
# abc.set_name() // don't match
xyz.set_name() // match and capture this one
更新以获得更多说明:
当我用 qDebug 打印出来时,我的文字是这样的
Hello\nx=y*2\nabc.set_name() \n#xyz.set_name()
这是一个与\n
换行符一样的长字符串。
更新:用于测试的更长的测试字符串。我已经尝试了所有建议的正则表达式,但它们没有用。不知道缺少什么。
https://regex101.com/r/vXpXIA/1
更新2:scratch我的第一个更新,这\n
是一个qDebug()
东西,使用正则表达式时不需要考虑。