包含特殊符号的精确字符串匹配的Python正则表达式

2024-03-28 11:56:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我对使用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}_tagA_tag:而不是A:_tag。在compile中应该添加什么,以便它也可以考虑像:}这样的特殊字符来搜索精确的字符串?你知道吗

我也尝试过以下方法:

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

而且它在子字符串方面仍然存在问题,例如:nas被替换为:\ tagnas\标记,而不是:nas\标记。它不是搜索整个字符串A:nas。像thB和th这样的字符串也是一样的,它们是不同的字符串。它应该做THU标签和THU标签分开,但它做THU标签的第一种情况。你知道吗

欢迎提出任何建议。你知道吗


Tags: 字符串textremap字典tag标签dict