首頁  >  文章  >  後端開發  >  如何使用字典執行多個字串替換?

如何使用字典執行多個字串替換?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-19 16:05:02407瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn