我想测试一个方法是否出现在头文件中。以下是我遇到的三种情况:
void aMethod(params ...)
//void aMethod(params
// void aMethod(params
^ can have any number of spaces here
这是我到目前为止所拥有的:
re.search("(?<!\/\/)\s*void aMethod",buffer)
Buf这只会匹配第一种情况,第二种情况。我怎么能调整它以使它与第三个匹配呢?
编辑:抱歉,但我没有正确表达自己。我只想匹配,如果不在评论中。很抱歉。答案 0 :(得分:7)
编辑:好的,在您编辑之后,Geo,就是这样:
^(?<!\/\/)\s*void aMethod
答案 1 :(得分:2)
如果您只是想找到'void aMethod(params')的所有外观,那么您可以使用以下内容:
a = """void aMethod(params ...)
//void aMethod(params
// void aMethod(params
^ can have any number of spaces here"""
from re import findall
findall(r'\bvoid aMethod\b', a)
OR:
findall(r'(?:\/\/)?[ ]*void aMethod', a)
答案 2 :(得分:1)
试试这个正则表达式。
(\/\/)?\s*void aMethod
答案 3 :(得分:1)
对于三个选项:(?:\/\/)?\s*void aMethod