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!