Comment remplacer plusieurs occurrences de chaîne à l'aide d'un dictionnaire ?

Barbara Streisand
Libérer: 2024-10-19 16:03:02
original
505 Les gens l'ont consulté

How to Replace Multiple String Occurrences Using a Dictionary?

Remplacement de plusieurs occurrences de chaîne par des valeurs de dictionnaire

Dans un scénario de programmation, vous pouvez rencontrer le besoin de remplacer plusieurs occurrences de mots ou d'expressions spécifiques dans une chaîne à l'aide d'un dictionnaire fourni.

Prenons un exemple :

<code class="python">d = {
    'Спорт':'Досуг',
    'russianA':'englishA'
}

s = 'Спорт russianA'</code>
Copier après la connexion

La tâche consiste à remplacer chaque apparition d'une clé du dictionnaire 'd' dans la chaîne 's' avec la valeur du dictionnaire correspondante. Le résultat attendu pour cet exemple est 'Досуг englishA'.

Solution utilisant des expressions régulières

En utilisant le module d'expression régulière intégré 're' de Python, nous pouvons y parvenir remplacement efficace :

<code class="python">import re

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

# Escape special characters in dictionary keys
keys = (re.escape(k) for k in d.keys())

# Construct a regex pattern with alternating ключей
pattern = re.compile(r'\b(' + '|'.join(keys) + r')\b')

# Perform substitutions using the provided dictionary
result = pattern.sub(lambda x: d[x.group()], s)</code>
Copier après la connexion

Cette approche utilise la méthode 're.sub' pour remplacer les correspondances par les valeurs du dictionnaire 'd'. En utilisant un métacaractère d'échappement « limite » (« b »), nous garantissons que seuls les mots entiers correspondent.

Extension pour les correspondances partielles

Si votre dictionnaire en contient mots comme sous-chaînes d'autres, il est recommandé de trier les clés par longueur décroissante (de la plus grande à la plus petite) avant de générer le modèle d'expression régulière. Cela empêche la correspondance des sous-chaînes au lieu de mots plus gros.

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!