我是ruby程序员,在ruby中可以像/ myregexp /.静态创建regexp。
在python中,我找到的唯一方法是使用re.compile(' myregexp')从字符串中创建它。
这不是什么大问题,但我不想使用dinamyc sintax创建静态不可变对象。
答案 0 :(得分:0)
根据您正在使用的功能,您不一定要编译正则表达式,但它是不内置运算符的方式在Ruby或Perl中。关于正则表达式,Python Java更紧密。
它最接近静态(虽然它最终将在函数中编译)是这样的(来自Python文档):
>>> import re
>>> m = re.search('(?<=abc)def', 'abcdef')
>>> m.group(0)
'def'
答案 1 :(得分:0)
您可以执行以下操作:
whatever_re = re.compile(r'whatever')
def function_which_uses_a_re(stuff):
match = whatever_re.match(stuff)
它将完成与Ruby相同的操作...预先编译re并一次又一次地使用它。