我对使用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
。在compile中应该添加什么,以便它也可以考虑像:
或}
这样的特殊字符来搜索精确的字符串?你知道吗
我也尝试过以下方法:
rc = re.compile(r"|".join(map(re.escape, wordDic)))
而且它在子字符串方面仍然存在问题,例如:nas被替换为:\ tagnas\标记,而不是:nas\标记。它不是搜索整个字符串A:nas。像thB和th这样的字符串也是一样的,它们是不同的字符串。它应该做THU标签和THU标签分开,但它做THU标签的第一种情况。你知道吗
欢迎提出任何建议。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐