如何使用字典执行多个字符串替换?

Mary-Kate Olsen
发布: 2024-10-19 16:05:02
原创
404 人浏览过

How to Perform Multiple String Replacements Using Dictionaries?

使用字典在字符串中进行多重替换

给定一个字典 d 将一组键映射到所需的替换以及包含这些键的字符串 s,如何将 s 中出现的每个键替换为 d 中对应的值?

解决方案:

利用 Python 的 re 模块可以使用以下命令在字符串中进行高效的多次替换字典:

<code class="python">import re

s = 'Спорт not russianA'
d = {
    'Спорт': 'Досуг',
    'russianA': 'englishA'
}

keys = (re.escape(k) for k in d.keys())
pattern = re.compile(r'\b(' + '|'.join(keys) + r')\b')
result = pattern.sub(lambda x: d[x.group()], s)

print(result)  # Output: 'Досуг not englishA'</code>
登录后复制

此方法采用正则表达式模式来匹配与任何 d 键匹配的整个单词。 sub 方法中的 lambda 函数使用 d 执行替换。

要允许在单词内替换而不仅仅是单词边界,请修改模式:

<code class="python">pattern = re.compile('|'.join(re.escape(k) for k in d.keys()))</code>
登录后复制

在本例中,对字典进行排序键按长度降序以防止子字符串匹配。

以上是如何使用字典执行多个字符串替换?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!