Wie führt man mehrere String-Ersetzungen mithilfe von Wörterbüchern durch?

Mary-Kate Olsen
Freigeben: 2024-10-19 16:05:02
Original
404 Leute haben es durchsucht

How to Perform Multiple String Replacements Using Dictionaries?

Mehrfache Ersetzungen in Zeichenfolgen mithilfe von Wörterbüchern

Angenommen, ein Wörterbuch d ordnet einen Satz von Schlüsseln den gewünschten Ersetzungen zu und eine Zeichenfolge s, die diese Schlüssel enthält, Wie können Sie jedes Vorkommen eines Schlüssels in s durch seinen entsprechenden Wert aus d ersetzen?

Lösung:

Die Verwendung des re-Moduls von Python ermöglicht effiziente Mehrfachersetzungen in Strings mit Wörterbücher:

<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>
Nach dem Login kopieren

Dieser Ansatz verwendet ein reguläres Ausdrucksmuster, das ganze Wörter findet, die zu einem der Schlüssel von d passen. Die Lambda-Funktion in der Sub-Methode führt die Ersetzung mit d durch.

Um Ersetzungen innerhalb von Wörtern und nicht nur an Wortgrenzen zu ermöglichen, ändern Sie das Muster:

<code class="python">pattern = re.compile('|'.join(re.escape(k) for k in d.keys()))</code>
Nach dem Login kopieren

In diesem Fall sortieren Sie das Wörterbuch Schlüssel nach Länge absteigend, um Übereinstimmungen von Teilzeichenfolgen zu verhindern.

Das obige ist der detaillierte Inhalt vonWie führt man mehrere String-Ersetzungen mithilfe von Wörterbüchern durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!