我有兴趣将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。
欢迎提出任何建议。