首页 > 解决方案 > 如何在 python 中符号化和重用正则表达式

问题描述

我想这样做,在另一个声明中重用标记化表达式(如在 lex 中)

digit = [0-9]
integer (0|([1-9]{digit}*))

我可以在python中以这种方式定义和重用正则表达式吗?

标签: pythonpython-3.xregexre

解决方案


根据评论,您可以执行以下操作:

digit = re.compile('[0-9]')
integer = re.compile(f'(0|[1-9]{digit.pattern})')

您可以从pattern属性中检索模式字符串,这允许您组合任意正则表达式。如果你想使用字符串,那就更简单了:

digit = '[0-9]'
integer = f'(0|[1-9]{digit})'

推荐阅读