我想根据变量的值进行正则表达式搜索。
在 Py2.x 中,这非常有效:
pattern = re.compile(r"\b[a-zA-Z]{%(min_length)d,}\b" % locals())
当我尝试将其移植到新的 str.format() 表示法时,我得到如下信息:
pattern = re.compile(r"\b[a-zA-Z]{{0},}\b".format(min_length))
这给了我一个错误,因为重复的大括号与 str.format() 的大括号混淆:
ValueError: Single '}' encountered in format string
我相信您可以想到更多这样的例子,其中 format() 与重复发生冲突。
通过 str.format() 为正则表达式的重复提供外部值的正确方法是什么?% 运算符在 Py3 中不起作用。