使用python的RegEx {m,n}操作,但使用m和n的变量

时间:2013-12-08 05:39:06

标签: python regex

我想具体说明一个全局的min和max变量,用于检查ID有效性的正则表达式。

例如,设置变量

min=8 
max=16
alphanumeric input

然后我希望Python解释的表达式是

r'\w{8,16}\Z'

但我想使用变量min和max而不是将数字硬编码到表达式中。

2 个答案:

答案 0 :(得分:6)

没有内置功能,但您可以使用字符串插值构建正则表达式。例如,

regexp = r"\w{%d,%d}\Z" % (minimum, maximum)

当然还有很多其他方法可以构建你想要的正则表达式。关键是你必须自己构建它: - )

顺便说一句,请不要使用名称minmax。它们是内置函数,并且对变量使用相同的名称会让人感到困惑 - 包括以后的某些时间,你; - )

答案 1 :(得分:2)

您可以动态构建正则表达式:

regex = r'\w{{{},{}}}\Z'.format(minimum, maximum)