Comment effectuer plusieurs remplacements de chaînes à l'aide de dictionnaires ?

Mary-Kate Olsen
Libérer: 2024-10-19 16:05:02
original
404 Les gens l'ont consulté

How to Perform Multiple String Replacements Using Dictionaries?

Remplacements multiples dans les chaînes à l'aide de dictionnaires

Étant donné un dictionnaire d mappant un ensemble de clés aux remplacements souhaités et une chaîne s contenant ces clés, comment pouvez-vous remplacer chaque occurrence d'une clé dans s par sa valeur correspondante dans d ?

Solution :

L'utilisation du module re de Python permet des remplacements multiples efficaces dans les chaînes en utilisant dictionnaires :

<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>
Copier après la connexion

Cette approche utilise un modèle d'expression régulière qui correspond à des mots entiers correspondant à l'une des clés de d. La fonction lambda dans la méthode sub effectue la substitution en utilisant d.

Pour permettre les remplacements à l'intérieur des mots et pas seulement aux limites des mots, modifiez le modèle :

<code class="python">pattern = re.compile('|'.join(re.escape(k) for k in d.keys()))</code>
Copier après la connexion

Dans ce cas, triez le dictionnaire clés décroissantes par longueur pour empêcher les correspondances de sous-chaînes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!