我正在python中使用re模块来删除某些字符串的出现。以下是我正在尝试的:
>>> import re
>>> t = re.sub(re.compile('ab'), "", 'This is a ab text')
>>> t
'This is a text'
请注意,在上面,不要用'(什么都没有)替换'ab',而是用空格替换。 有人可以在这里提出什么问题吗?
答案 0 :(得分:5)
替换实际上是空字符串,但是由于ab
的两侧都被空格包围,因此替换似乎有一个空格。试试这个版本:
t = re.sub(r'\s*ab\s*', " ", 'This is a ab text')
print(t)
This is a text
上述模式\s*ab\s*
匹配并消耗ab
及其周围的空格,然后仅替换为一个空格。
对于边缘情况,其中ab
可能是字符串中的第一个或最后一个词,我建议使用strip()
,例如
t = re.sub(r'\s*ab\s*', " ", 'ab tests can be so boring ab').strip()
print(t)
tests can be so boring