Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man mit dem „re'-Modul von Python Phrasen zuverlässig mit Sonderzeichen abgleichen?
Unerwartete Ergebnisse mit Wortgrenzen und Sonderzeichen
Beim Versuch, das Vorhandensein einer Phrase sowohl mit regulären als auch mit Sonderzeichen abzugleichen, kann es zu Problemen kommen auf unerwartete Ergebnisse stoßen. Mit dem re-Modul von Python kann ein Muster maskiert und innerhalb einer bestimmten Zeichenfolge durchsucht werden. Während b normalerweise mit Wortgrenzen übereinstimmt, treten Schwierigkeiten auf, wenn das Muster Sonderzeichen enthält.
Betrachten Sie den Beispielsatz „Sortesindex[persons]{Sortes}“. Bei der Suche innerhalb der Zeichenfolge „test Sortesindex[persons]{Sortes} text“ mit re.escape('Sortes\index[persons]{Sortes}') und b wird keine Übereinstimmung gefunden. Dies liegt daran, dass b ein Wortzeichen erfordert, das der Grenze folgt, was nicht der Fall ist, wenn Sonderzeichen vorhanden sind.
Um dies zu beheben, kann ein expliziter Nicht-Wort-Zeichenabgleich oder eine String-Ende-Bedingung erfolgen gebraucht. Das Ersetzen von b durch (W|$) ermöglicht eine erfolgreiche Suche.
Ein umfassenderer Ansatz besteht darin, adaptive Wortgrenzen zu verwenden:
re.search(r'(?:(?!\w)|\b(?=\w)){}(?:(?<=\w)\b|(?<!\w))'.format(re.escape('Sortes\index[persons]{Sortes}')), 'test Sortes\index[persons]{Sortes} test')
Adaptive Wortgrenzen stellen das Vorhandensein von Wortgrenzen ohne sicher erfordern benachbarte Wortzeichen. Sie funktionieren, indem sie Nicht-Wort-Zeichen auf beiden Seiten des Musters ausschließen.
Alternativ können eindeutige Wortgrenzen basierend auf negativen Lookarounds verwendet werden:
re.search(r'(?<!\w){}(?!\w)'.format(re.escape('Sortes\index[persons]{Sortes}')), 'test Sortes\index[persons]{Sortes} test')
Negative Lookarounds garantieren die Abwesenheit von Wörtern Zeichen auf beiden Seiten des Musters.
Zusammenfassend lässt sich sagen, dass beim Abgleichen von Phrasen mit sowohl regulären als auch Sonderzeichen, expliziter Nicht-Wort-Zeichenabgleich, adaptives Wort Grenzen oder eindeutige Wortgrenzen sollten verwendet werden, um die gewünschten Ergebnisse sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie kann man mit dem „re'-Modul von Python Phrasen zuverlässig mit Sonderzeichen abgleichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!