我想在我的整个 Python 代码库中搜索包含大写字母的函数定义(包括函数名、参数名和注释表达式)。所以应该捕获如下代码:
示例 1
def Foobar(arg1: expression,
arg2: expression,
*args: expression,
**kwargs: expression)->expression:
示例 2
def foobar(arg1: expression,
Arg2: expression,
*args: expression,
**kwargs: expression)->expression:
由于:
语句中可以有多个,我认为这可能非常困难。如果我们可以假设没有注释,我该怎么做。例如,
def foobar(arg1,
Arg2,
*args,
**kwargs):
我建议您使用 pylint 而不是为此使用正则表达式。如果你真的想自己使用,你可以使用下面的代码。
import re
regex = r"def (?P<func_name_and_args>\w*\(.+?\))"
with open(/path/to/file/, 'r') as test_file:
lines = test_file.readlines()
matches = re.finditer(regex, lines, re.DOTALL | re.MULTILINE)
for match in matches:
group = match.group('func_name_and_args')
if any(char != char.lower() for char in group):
print(group)
您可以通过以下方式对其进行测试:https : //regex101.com/r/BMniq9/1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句