很简单,我正在尝试替换包含子串XX的字符串。
import re
def replace_bogus(original, replacement):
bogus = re.compile('[.]*[X][X][.]*')
if bogus.match(original) != None:
original = replacement
return original
if __name__ == "__main__":
teststr = replace_bogus('ABXX0123', '')
print teststr
此代码打印出ABXX0123。 为什么这个正则表达式错了,我该怎么用?
答案 0 :(得分:3)
因为点(.
)在字符类(即[.]
)内没有特殊含义。正则表达式与文本不匹配,它返回None
。
正如评论中所说,re
模块有自己的替换方法,即sub
方法。你可以这样简单地使用它:
import re
p = re.compile(r'XX')
result = re.sub(p, '', 'ABXX0123')
print result // => AB0123
答案 1 :(得分:0)
因为您没有声明要使用正则表达式。怎么样:
teststr = 'ABXX0123'
print teststr.replace('XX', '')