是否可以在Python中静态创建正则表达式?

时间:2014-06-24 01:22:54

标签: python regex

我是ruby程序员,在ruby中可以像/ myregexp /.静态创建regexp。

在python中,我找到的唯一方法是使用re.compile(' myregexp')从字符串中创建它。

这不是什么大问题,但我不想使用dinamyc sintax创建静态不可变对象。

2 个答案:

答案 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并一次又一次地使用它。