Python正则表达式:如何匹配“ foo(”,但不匹配“ def foo(”或“ class foo(”)

请参阅示例字符串:

strg="""def vert_mirror(strng):
        strng=strng.split("\n")
        strng= list(map(lambda x: "".join(reversed(x)), strng))
        return "\n".join(strng)
    def hor_mirror(strng):
        strng=strng.split("\n")
        strng.reverse()
        return "\n".join(strng)
    def oper(fct, s):
        return fct(s)

class mirror()
"""

所以我的目标是匹配:拆分,反转,加入。 我不希望正则表达式找到:def vert_mirror,def hor_mirror或类镜像。

我当前的解决方案:

functions = re.findall(" *[0-9a-zA-Z_]+\(", strg)

给出所需和不需要的函数名称:

[' vert_mirror(', 'split(', ' list(', 'map(', 'join(', 'reversed(', 'join(', ' hor_mirror(', 'split(', 'reverse(', 'join(', ' oper(', ' fct(', 'mirror(']

我只想要:

['split(', ' list(', 'map(', 'join(', 'reversed(', 'join(','split(', 'reverse(', 'join(' ]
评论