[英]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.