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

时间:2017-01-30 17:14:46

标签: python regex

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

p = re.compile(r"\d{"+str(var)+"}")

或者这样:

p = re.compile(r"\d{%d}" % var)

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

我试过了两个:

p = re.compile(r"\d{0}".format(var))

p = re.compile(r"\d{{0}}".format(var))

但这些都没有奏效。

1 个答案:

答案 0 :(得分:5)

您需要实际拥有三个{} - 两个用于转义的文字大括号,另一个用于占位符:

In [1]: var = 6

In [2]: r"\d{plotly image with fill= used }".format(var)
Out[2]: '\\d{6}'