我尝试编写一个 python 正则表达式,它与简单 python 函数的签名相匹配。 喜欢:
def _func1_(arg1, arg2):
我创建了这个正则表达式:
"def ([^\W\d]+\w*)(\(( *[^\W\d]+\w* *,? *)*\)):"
不幸的是,这并不是很好。在我的正则表达式中,在参数列表中,变量名称中可以包含空格,参数列表的 and 处可以包含不必要的逗号。有人可以帮我解决这种情况的正确正则表达式吗?提前致谢!
最佳答案
事实上,我最近为函数头注释编写了一个简单的正则表达式(自动格式化我的 CS 类作业)。其要点如下:
"def (\w+)\s*\((.*?)\):"
对于参数,我会放弃使用 re,而是在捕获组 1
上使用 str.split(',')
。没有必要让它变得更加复杂。
关于Python 函数签名的 Python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10158403/