Python正则表达式用于精确的字符串匹配,包括特殊符号

时间:2019-05-23 11:14:26

标签: python regex

我有兴趣将Python字符串匹配与字典中的特殊字符配合使用。

字典的外观如下:

    A: A:_tag
    c} c}_tag
    th th_tag

我正在根据here中给出的想法尝试使用像这样的正则表达式:

    def word_replace(text, dict):
        rc = re.compile( r'\b'+r'\b|\b'.join(map(re.escape, dict))+r'\b')
        return rc.sub(lambda match: dict[match.group(0)], text)

但是,它在文本文件中提供了类似于c_tag}而不是c}_tag的映射和A_tag:而不是A:_tag的映射。应该在编译中添加什么,以便它也可以考虑使用诸如:}之类的特殊字符来搜索确切的字符串?

我也尝试了以下方法:

rc = re.compile(r"|".join(map(re.escape, wordDic)))

,子字符串仍然有问题,例如A:nas被替换为A:_tagnas_tag而不是A:nas_tag。它不是在搜索整个字符串A:nas。类似的字符串thB和th也是如此。它应该将thB_tag和th_tag分开,但是对于第一种情况,它应该做th_tagB。

欢迎提出任何建议。

0 个答案:

没有答案