我正在尝试构建正则表达式,以便在Python代码中查找类,而无需显式继承自object
。
import re
test_string = '''
class Test(object):
pass
class Test:
pass
'''
regex = r'class .*(?!\(object\)).*'
re.compile(regex).findall(test_string)
这使我得到:
'class Test(object):', 'class Test:'
但我只需要'class Test:'
。
同时正向预查起作用:
>>> print regex = r'class .*(?=\(object\)).*'
['class Test(object):']
这里的问题是什么?
ast
?使用正则表达式更容易出现错误。 - Bharelclass test: ...
和"class test: ..."
. 任何在注释、字符串或文档字符串中的数据也会被计算在内 :-/ - Bharel