Python正则表达式使用编译对象

时间:2017-08-06 19:03:12

标签: python regex

我有一个正则表达式<type '_sre.SRE_Pattern'>,我想用匹配的字符串替换另一个字符串。这就是我所拥有的:

compiled = re.compile(r'some regex expression')
s = 'some regex expression plus some other stuff'
compiled.sub('substitute', s)
print(s)

s应为

'substitute plus some other stuff'

但是,我的代码无效,字符串没有改变。

1 个答案:

答案 0 :(得分:2)

re.sub 不是就地操作。来自文档:

  

返回通过替换最左边不重叠获得的字符串   替换代表在字符串中出现模式。

因此,您必须将返回值分配回a

...
s = compiled.sub('substitute', s)
print(s)

这给出了

'substitute plus some other stuff'

正如您所期望的那样。