简单的Python正则表达式不匹配

时间:2014-06-19 15:37:32

标签: python regex

很简单,我正在尝试替换包含子串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。 为什么这个正则表达式错了,我该怎么用?

2 个答案:

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