suchen
HeimBackend-EntwicklungPython-TutorialWarum schlägt Pythons „\b'-Wortgrenze bei Sonderzeichen in regulären Ausdrücken fehl?

Why Does Python's `b` Word Boundary Fail with Special Characters in Regular Expressions?

Umgang mit Wortgrenzen für Muster mit Sonderzeichen

Pythons re-Modul stellt das b-Muster zum Abgleichen von Wortgrenzen bereit. Bei Verwendung mit Mustern, die Sonderzeichen wie {} enthalten, kann das Verhalten jedoch unerwartet werden.

Betrachten Sie das Muster Sortesindex[persons]{Sortes}. Wenn wir b verwenden, um sicherzustellen, dass es nur mit Ganzwortinstanzen übereinstimmt, würden wir ein positives Ergebnis in „Test Sortesindex[persons]{Sortes} Text“ erwarten, aber es schlägt fehl.

Untersuchung des Wortgrenzenverhaltens

Die Dokumentation erklärt b als übereinstimmende Grenzen zwischen Wort- und Nicht-Wort-Zeichen oder zwischen dem Anfang/Ende einer Zeichenfolge und einem Wort Zeichen.

In unserem Muster entspricht b dem Ende des Wortes, aber nicht explizit dem Anfang. Das Vorhandensein von } als Sonderzeichen führt zu Mehrdeutigkeit für b, was zu unerwartetem Verhalten führt.

Adaptive Wortgrenzen verwenden

Eine Lösung besteht darin, adaptive Wortgrenzen zu verwenden. die den Kontext rund um das Muster berücksichtigen. Sie prüfen auf beiden Seiten, ob es sich um Nicht-Wortzeichen oder Wortzeichen handelt, und stellen so eine präzise Übereinstimmung sicher. Dies kann dargestellt werden als:

(?:(?!w)|b(?=w)){}(?:(?

wobei:

  • (?:(?!w)|b(?=w)) eine linke Grenze ist, die Übereinstimmungen an Wortgrenzen oder für ermöglicht Nicht-Wort-Zeichen auf der linken Seite.
  • (?:(?

Dies gewährleistet eine genaue Übereinstimmung für Sortesindex[persons]{Sortes} in der Testzeichenfolge, ausgenommen Übereinstimmungen wie Sorten.

Alternative Optionen

  • Eindeutige Wortgrenzen: Ähnlich wie adaptive Wortgrenzen, erfordern jedoch das Fehlen jeglicher Wortzeichen auf beiden Seiten des Musters.
  • Leerraumgrenzen: Überprüfen Sie insbesondere auf stimmt überein, wenn das Muster von Leerzeichen umgeben ist.

Den richtigen Ansatz wählen

Adaptive Wortgrenzen sind nachsichtiger und ermöglichen den Abgleich mit Nicht-Wort-Zeichen in der Umgebung das Muster. Eindeutige Wortgrenzen sind restriktiver und erfordern keine Wortzeichen an beiden Enden. Wählen Sie den Ansatz, der Ihren spezifischen Matching-Anforderungen am besten entspricht.

Das obige ist der detaillierte Inhalt vonWarum schlägt Pythons „\b'-Wortgrenze bei Sonderzeichen in regulären Ausdrücken fehl?. 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
Wie werden Arrays im wissenschaftlichen Computer mit Python verwendet?Wie werden Arrays im wissenschaftlichen Computer mit Python verwendet?Apr 25, 2025 am 12:28 AM

Arraysinpython, besondersvianumpy, arecrucialInScientificComputingFortheirefficience undvertilität.1) Sie haben festgelegt, dass die Fornerikerne, Datenanalyse und Machinelarning.2) Numpy'SimplementationIncensuresFasteroperationsdanpythonlisten.3) Araysensableableableableableableableableableableableableableableableableableableableableableableableableableable

Wie gehen Sie mit verschiedenen Python -Versionen im selben System um?Wie gehen Sie mit verschiedenen Python -Versionen im selben System um?Apr 25, 2025 am 12:24 AM

Sie können verschiedene Python -Versionen mithilfe von Pyenv, Venv und Anaconda verwalten. 1) Verwalten Sie PYENV, um mehrere Python -Versionen zu verwalten: Installieren Sie PyEnv, setzen Sie globale und lokale Versionen. 2) Verwenden Sie VenV, um eine virtuelle Umgebung zu erstellen, um Projektabhängigkeiten zu isolieren. 3) Verwenden Sie Anaconda, um Python -Versionen in Ihrem Datenwissenschaftsprojekt zu verwalten. 4) Halten Sie das System Python für Aufgaben auf Systemebene. Durch diese Tools und Strategien können Sie verschiedene Versionen von Python effektiv verwalten, um den reibungslosen Betrieb des Projekts zu gewährleisten.

Was sind einige Vorteile bei der Verwendung von Numpy -Arrays gegenüber Standard -Python -Arrays?Was sind einige Vorteile bei der Verwendung von Numpy -Arrays gegenüber Standard -Python -Arrays?Apr 25, 2025 am 12:21 AM

NumpyarrayShaveseveraladVantagesOverStandardPythonArrays: 1) SiearemuchfasterDuetoc-basiert, 2) sie istaremoremory-effizient, insbesondere mit mit LaShlargedatasets und 3) sie können sich mit vektorisierten Funktionsformathematical und Statistical opertical opertical opertical operticaloperation, Making

Wie wirkt sich die homogene Natur der Arrays auf die Leistung aus?Wie wirkt sich die homogene Natur der Arrays auf die Leistung aus?Apr 25, 2025 am 12:13 AM

Der Einfluss der Homogenität von Arrays auf die Leistung ist doppelt: 1) Homogenität ermöglicht es dem Compiler, den Speicherzugriff zu optimieren und die Leistung zu verbessern. 2) aber begrenzt die Typ -Vielfalt, was zu Ineffizienz führen kann. Kurz gesagt, die Auswahl der richtigen Datenstruktur ist entscheidend.

Was sind einige Best Practices für das Schreiben von ausführbaren Python -Skripten?Was sind einige Best Practices für das Schreiben von ausführbaren Python -Skripten?Apr 25, 2025 am 12:11 AM

TocraftexecutablePythonScripts, folge theseBestPractices: 1) addashebangline (#!/Usr/bin/envpython3) tomakethescriptexcutable.2 SetPermissions withchmod xyour_script.py.3) organisation -bithacleardocstringanduseInname == "__ __": FormAcleardocstringanduseInname

Wie unterscheiden sich Numpy Arrays von den Arrays, die mit dem Array -Modul erstellt wurden?Wie unterscheiden sich Numpy Arrays von den Arrays, die mit dem Array -Modul erstellt wurden?Apr 24, 2025 pm 03:53 PM

NumpyarraysarebetterFornumericaloperations und multi-dimensionaldata, whilethearraymoduleiStableforbasic, an Gedächtniseffizienten

Wie vergleichen sich die Verwendung von Numpy -Arrays mit der Verwendung der Array -Modularrays in Python?Wie vergleichen sich die Verwendung von Numpy -Arrays mit der Verwendung der Array -Modularrays in Python?Apr 24, 2025 pm 03:49 PM

NumpyarraysarebetterforeheavynumericalComputing, während der projectwithsimpledatatypes.1) numpyarraysoferversatility und -PerformanceForlargedataSets und Compoxexoperations.2) thearraysoferversStility und Mächnory-Effefef

Wie bezieht sich das CTypes -Modul auf Arrays in Python?Wie bezieht sich das CTypes -Modul auf Arrays in Python?Apr 24, 2025 pm 03:45 PM

ctypesallowscreatingandmanipulationsc-stylearraysinpython.1) usectypestoInterfaceWithClibraryForperformance.2) createCec-stylearraysFornumericalComputationen.3) PassarrayStocfunctionsFectionFicecher-Operationen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor