[英]regex replace group with specific value
我使用python 2.7
我只是尝试用一个值来更改正则表达式中的组:
import re
r = "/foo/bar/(?P<pk>[0-9]+)/"
rc = re.compile(r)
#that i try to do : rc["pk"] = 42 and get the resut
print rc.groupindex
#return {'pk' : 1}
我需要这样做,因为我不知道正则表达式,但是我知道这是其中的一个组。
编辑:
我想要这样的结果:
rc["pk"] = 42
#now rc is /foo/bar/42 because (?P<pk>[0-9]+) is replace with 42
我不是python程序员,但是我在许多其他系统中都使用正则表达式。 我相信您可以将re.sub
函数与对组的反向引用一起使用,如下所示:
搜索模式:
'(/foo/bar/)[0-9]+(/)'
更换方式:
'\g<1>42\g<2>'
这将取代
'/foo/bar/17/'
与
'/foo/bar/42/'
甚至在文件夹名称本身是表达式的地方也可以使用:
'(/\w+/\w+/)\d+(/)'
Python还支持环顾四周的语句,如下所示:
'(?<=/foo/bar/)\d+(?=/)'
然后,您只需将匹配项替换为'42'
。 (解决方法不会“使用”字符,因此不会替换'((?<=...)'
和'(?=...)'
的文本。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.