Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mithilfe regulärer Ausdrücke ganze Wörter in Zeichenfolgen dynamisch abgleichen?

Wie kann ich mithilfe regulärer Ausdrücke ganze Wörter in Zeichenfolgen dynamisch abgleichen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-20 00:11:02868Durchsuche

How Can I Dynamically Match Whole Words in Strings Using Regular Expressions?

Ganze Wörter mithilfe von Regex dynamisch in Zeichenfolgen abgleichen

Um ein ganzes Wort in einer Zeichenfolge abzugleichen, können wir dynamische reguläre Ausdrücke verwenden. Stellen Sie sich das folgende Szenario vor:

Wörter in einem Satz werden durch Leerzeichen getrennt, aber Satzzeichen können auf beiden Seiten erscheinen. Um Wörter in der Mitte einer Zeichenfolge zu identifizieren, verhindert das folgende Muster effektiv teilweise Wortübereinstimmungen und ermöglicht die Zeichensetzung:

match_middle_words = " [^a-zA-Z\d ]{0,}" + word + "[^a-zA-Z\d ]{0,} "

Dieses Muster stimmt jedoch nicht mit dem ersten oder letzten Wort überein, da das führende oder fehlt nachgestellte Leerzeichen. Um dies zu beheben, können wir zusätzliche Muster verwenden:

match_starting_word = "^[^a-zA-Z\d]{0,}" + word + "[^a-zA-Z\d ]{0,} "
match_end_word = " [^a-zA-Z\d ]{0,}" + word + "[^a-zA-Z\d]{0,}$"

Durch die Kombination dieser Muster erhalten wir die folgende Zeichenfolge:

match_string = match_middle_words  + "|" + match_starting_word  +"|" + match_end_word 

Dieser Ansatz stellt sicher, dass ein Wort nur erfasst wird, wenn es ist von Nicht-Wort-Zeichen umgeben. Darüber hinaus werden Wörter am Anfang und Ende einer Zeichenfolge verarbeitet.

Um diesen Prozess zu vereinfachen, können wir Wortgrenzen nutzen, die mit b gekennzeichnet sind. Diese Grenzen stimmen am Anfang und Ende einer Zeichenfolge überein, sodass keine separaten Muster für das erste und letzte Wort erforderlich sind. Das folgende Muster findet effizient ganze Wörter:

match_string = r'\b' + word + r'\b'

Dieses Muster kann leicht geändert werden, um es einer Liste von Wörtern anzupassen:

words_list = ['word1', 'word2', 'word3']
match_string = r'\b(?:{})'.format('|'.join(words_list))

Durch die Verwendung von Wortgrenzen machen wir drei Wörter überflüssig Trennen Sie Muster und vereinfachen Sie den Prozess der Zuordnung ganzer Wörter in Zeichenfolgen mithilfe dynamischer Regex.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe regulärer Ausdrücke ganze Wörter in Zeichenfolgen dynamisch abgleichen?. 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