我的情况是我有一个像这样的正则表达式
regex_string = r'(?P<x>\d+)\s(?P<y>\w+)'
r = re.compile(regex_string)
并且,在我开始与之匹配之前,我想用一个特定的值替换名为x
的正则表达式组,比如2014.这样,当我搜索这个正则表达式的匹配时,我们只会找到x=2014
的内容。解决这个问题的最佳方法是什么?
这里的挑战是原始正则表达式regex_string
和任意替换值x=2014
都由最终用户指定。在我的脑海中,理想的事情是拥有像replace_regex
:
r = re.compile(regex_string)
r = replace_regex_variables(r, x=2014)
for match in r.finditer(really_big_string):
do_something_with_each_match(match)
我对任何解决方案持开放态度,但特别感兴趣的是理解是否有可能在finditer
返回{strong>之后1>}来检查匹配的表现。换句话说,最好不要:
re
答案 0 :(得分:0)
你想要这样的东西,不是吗?
r = r'(?P<x>%(x)s)\s(?P<y>\w+)'
r = re.compile(r % {x: 2014})
for match in r.finditer(really_big_string):
do_something_with_each_match(match)