如果正则表达式我使用Python风格,我需要在替换文本时切片。我用来匹配我需要的字符串的正则表达式是abc .+ cba
。如果它与abc Hello, World cba
匹配,则应更改为efg Hello, World
。
答案 0 :(得分:3)
使用捕获组:
>>> s = "here is some stuff abc Hello, World cba here is some more stuff"
>>> import re
>>> re.sub(r'abc (.+) cba', r'efg \1',s)
'here is some stuff efg Hello, World here is some more stuff'
>>>
注意:替换字符串接受反向引用。
答案 1 :(得分:2)
您可以使用以下函数re.sub:
re.sub(pattern, repl, string, count=0, flags=0)
在repl中,支持使用\ 1,\ 2 ...使用()反向引用组1,2,...中匹配的字符串。这个时候,它是(。+)
>>> import re
>>> re.sub(r"abc (.+) cba",r"efg \1", "abc Hello, World cba")
'efg Hello, World'