2014-10-16 79 views
-1

所以我有一個字符串,我也有該字符串的正則表達式。我只是想將8添加到該字符串中的一個數字中。我想知道如何更改組的值,然後將匹配對象返回給字符串。使用正則表達式編輯

這裏是我想要做的一個例子。

m = re.match(r"(\w+) (\w+)", "Isaac Newton, physicist") 
m.group(1) = 'john' 
//then some how return the value back to a string 

因此字符串將是「約翰·牛頓,物理學家」

+0

什麼是正確的輸出?要用正則表達式改變字符串,你必須使用're.sub' – Kasramvd 2014-10-16 14:07:13

+0

使組可寫是非常有問題的。考慮一個嵌套的分組'(a(b))'並且你做'group(0)='def';組(1)='ghi''。最後的字符串是什麼?通過更改組(0),您已銷燬匹配/創建組(1)的文本。 – 2014-10-16 14:08:36

回答

3

您需要使用re.sub,而不是re.match,並使用從匹配捕獲的組,請repl。例如:

>>> import re 
>>> re.sub(r"(\w+) (\w+)", r"john \2", "Isaac Newton, physicist") 
'john Newton, physicist' 

這裏r"john \2"裝置「一詞'john'和從pattern第二捕獲組替換匹配」。