正则表达式字符串切片

时间:2016-11-18 02:49:40

标签: python regex slice

如果正则表达式我使用Python风格,我需要在替换文本时切片。我用来匹配我需要的字符串的正则表达式是abc .+ cba。如果它与abc Hello, World cba匹配,则应更改为efg Hello, World

2 个答案:

答案 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'