使用字典在字串中進行多重替換
給定一個字典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中文網其他相關文章!