Heim  >  Artikel  >  Backend-Entwicklung  >  Wie ersetze ich mehrere String-Vorkommen mithilfe eines Wörterbuchs?

Wie ersetze ich mehrere String-Vorkommen mithilfe eines Wörterbuchs?

Barbara Streisand
Barbara StreisandOriginal
2024-10-19 16:03:02509Durchsuche

How to Replace Multiple String Occurrences Using a Dictionary?

Ersetzen mehrerer Vorkommen von Zeichenfolgen durch Wörterbuchwerte

In einem Programmierszenario müssen Sie möglicherweise mehrere Vorkommen bestimmter Wörter oder Phrasen ersetzen innerhalb einer Zeichenfolge mithilfe eines bereitgestellten Wörterbuchs.

Betrachten wir ein Beispiel:

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

s = 'Спорт russianA'</code>

Die Aufgabe besteht darin, jedes Vorkommen eines Schlüssels aus dem Wörterbuch „d“ in der Zeichenfolge „s“ zu ersetzen. mit dem entsprechenden Wörterbuchwert. Das erwartete Ergebnis für dieses Beispiel ist „Досуг englishA“.

Lösung mit regulären Ausdrücken

Mithilfe des in Python integrierten Moduls „re“ für reguläre Ausdrücke können wir dies erreichen Effizientes Ersetzen:

<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>

Dieser Ansatz verwendet die Methode „re.sub“, um Übereinstimmungen durch Werte aus dem Wörterbuch „d“ zu ersetzen. Durch die Verwendung eines maskierten „Grenz“-Metazeichens („b“) stellen wir sicher, dass nur ganze Wörter gefunden werden.

Erweiterung für Teilübereinstimmungen

Wenn Ihr Wörterbuch welche enthält Um Wörter als Teilzeichenfolgen anderer Wörter zu verwenden, wird empfohlen, die Schlüssel vor der Generierung des Regex-Musters absteigend nach Länge (vom größten zum kleinsten) zu sortieren. Dadurch wird verhindert, dass Teilzeichenfolgen statt größerer Wörter abgeglichen werden.

Das obige ist der detaillierte Inhalt vonWie ersetze ich mehrere String-Vorkommen mithilfe eines Wörterbuchs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn