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

mik*_*gs1 1 python regex

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

例如,设置变量

min=8 
max=16
alphanumeric input
Run Code Online (Sandbox Code Playgroud)

那么我希望Python解释的表达式是

r'\w{8,16}\Z'
Run Code Online (Sandbox Code Playgroud)

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

Tim*_*ers 6

这没有内置工具,但您可以使用字符串插值构建正则表达式.例如,

regexp = r"\w{%d,%d}\Z" % (minimum, maximum)
Run Code Online (Sandbox Code Playgroud)

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

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