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

标签 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))

但这些都不起作用。

最佳答案

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

In [1]: var = 6

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

关于带有变量 {}-multiplier 的 Python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41941660/

相关文章:

python - 通过知道索引,用单个字符串替换列表中的多个字符串

python - 从单个雷鸟电子邮件数据文件中提取单个电子邮件

python - Gunicorn(Python3.4 和 3.3)仅在响应中发送没有数据的 header

java - 正则表达式捕获字符串和数字

regex - 如何使用 Windows 批处理文件拆分文本文件元素?

python - 如何确保所有正则表达式候选字符串都可以匹配

regex - 如何从差异中排除除特定文件外的所有文件

python - 从字符串中删除第一个字符

python - 从总值最高的 2 个数组中从 N 个数字中选择 k 个

python - 使用估算器 api 避免 tf.data.Dataset.from_tensor_slices