簡體   English   中英

正則表達式用特定值替換組

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM