这是我现在的代码,
import re
matches = re.search(r'^%s\s*\((.*?)\)'%"Hello", "Hello(Hi())")
print matches.group(1)
看到 Hello 后,它将所有内容都放在括号内。例如,
Hello(hi) produces hi
我有一个问题,
Hello(Hi()) produces Hi( and not Hi()
有谁知道我如何通过更改正则表达式来解决这个问题?
如果可以有任意级别的嵌套,则正则表达式是不合适的。
如果您可以确定嵌套层数不会超过两层,则可以解决它,但这并不令人愉快:
re.match(r'^%s\s*\(((?:[^()]*|\([^)]*\))*)\)' % re.escape("Hello"), text)
在线查看它:ideone