在 Perl 中我可以这样做:
$number = qr/ zero | one | two | three | four | five | six | seven | eight | nine /ix;
$foo = qr/ quantity: \s* $number /ix;
我的实际正则表达式有很多行,并且处理两位数和序数(例如,“二十二”、“四十四”和“十二都是完全匹配),并且我在多个地方使用它。这个表达式编译速度很快,但这肯定是不平凡的。我更喜欢编译一次,然后将其添加到其他正则表达式中,正如 Perl 允许的那样。
有没有办法在Python中以这种方式嵌套正则表达式?
在 python 中,您可以通过将字符串传递给 re.compile 来构建正则表达式。
您可以通过执行常规字符串操作来“嵌套”正则表达式:
#!/usr/bin/env python
import re
number = 'zero | one | two | three | four | five | six | seven | eight | nine'
foo = re.compile(' quantity: \s* (%s) '%number,re.VERBOSE|re.IGNORECASE)
teststr=' quantity: five '
print(foo.findall(teststr))
# ['five']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)