带有变量{} -multiplier的Python正则表达式

Mar*_*eal 3 python regex

假设您要创建一个匹配var连续数字序列的模式.你可以这样做:

p = re.compile(r"\d{"+str(var)+"}")
Run Code Online (Sandbox Code Playgroud)

或者这样:

p = re.compile(r"\d{%d}" % var)
Run Code Online (Sandbox Code Playgroud)

但是你怎么用format()来做呢?

我试过两个:

p = re.compile(r"\d{0}".format(var))
Run Code Online (Sandbox Code Playgroud)

和:

p = re.compile(r"\d{{0}}".format(var))
Run Code Online (Sandbox Code Playgroud)

但这些都没有奏效.

ale*_*cxe 5

实际上,对于转义的文字括号,您需要实际使用三个{}- 两个,并为占位符设置一个:

In [1]: var = 6

In [2]: r"\d{{{0}}}".format(var)
Out[2]: '\\d{6}'
Run Code Online (Sandbox Code Playgroud)