suchen
HeimBackend-EntwicklungPython-TutorialWie kann ich überlappende Übereinstimmungen mit Pythons „re.findall()' finden?

How Can I Find Overlapping Matches Using Python's `re.findall()`?

Überlappende Übereinstimmungen in Regex verstehen

Standardmäßig erfasst die findall()-Methode im re-Modul von Python keine überlappenden Übereinstimmungen innerhalb einer Zeichenfolge . Dieses Verhalten kann verwirrend sein, insbesondere wenn Übereinstimmungen aus aufeinanderfolgenden Zeichen bestehen.

Betrachten Sie den folgenden Code:

match = re.findall(r'\w\w', 'hello')
print(match)

Ausgabe:

['he', 'll']

Dieses Muster entspricht zwei aufeinanderfolgenden Zeichen Wortzeichen (w). Wie erwartet werden er und ich zurückgebracht. Allerdings werden el und lo nicht erfasst, obwohl sie in der Zeichenfolge erscheinen.

Überlappende Übereinstimmungen überwinden

Um überlappende Übereinstimmungen zu erfassen, können wir eine Lookahead-Behauptung (?=) verwenden ...). Diese Behauptung entspricht einem bestimmten Muster, verbraucht jedoch keine Zeichen aus der Zeichenfolge. Stattdessen wird geprüft, ob die folgenden Zeichen mit der Behauptung übereinstimmen.

Zum Beispiel:

match1 = re.findall(r'(?=(\w\w))', 'hello')
print(match1)

Ausgabe:

['he', 'el', 'll', 'lo']

In diesem Fall (?=(ww )) findet jede Stelle, an der zwei aufeinanderfolgende Wortzeichen vorhanden sind, ohne diese tatsächlich zu verbrauchen. Dadurch kann findall() sowohl überlappende als auch nicht überlappende Übereinstimmungen zurückgeben.

Erklärung

Der reguläre Ausdruck /(?=(ww)) kann wie folgt aufgeschlüsselt werden :

  • (?:...) ist eine nicht erfassende Gruppe, was bedeutet, dass der Inhalt der Gruppe dies nicht ist zurückgegeben.
  • ww stimmt mit zwei aufeinanderfolgenden Wortzeichen überein.
  • (?=...) ist die Lookahead-Behauptung, die sicherstellt, dass die Zeichenfolge ww an der aktuellen Position enthält, diese aber nicht verbraucht.

Mit diesem Ansatz können wir alle überlappenden Übereinstimmungen innerhalb einer Zeichenfolge effektiv erkennen, selbst wenn sie aus aufeinanderfolgenden Zeichen bestehen.

Das obige ist der detaillierte Inhalt vonWie kann ich überlappende Übereinstimmungen mit Pythons „re.findall()' finden?. 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
Was sind einige häufige Gründe, warum ein Python -Skript möglicherweise nicht auf Unix ausgeführt wird?Was sind einige häufige Gründe, warum ein Python -Skript möglicherweise nicht auf Unix ausgeführt wird?Apr 28, 2025 am 12:18 AM

Die Gründe, warum Python -Skripte auf UNIX -Systemen nicht ausgeführt werden können, sind: 1) unzureichende Berechtigungen unter Verwendung von chmod xyour_script.py zur Erteilung von Ausführungsberechtigungen; 2) Falsche oder fehlende Shebang -Linie, Sie sollten #!/Usr/bin/envpython verwenden; 3) In falsche Einstellungen für die Umgebungsvariablen können Sie os.Environ -Debugging drucken. 4) Mit der falschen Python -Version können Sie die Version in der Shebang -Zeile oder der Befehlszeile angeben. 5) Abhängigkeitsprobleme unter Verwendung der virtuellen Umgebung, um Abhängigkeiten zu isolieren; 6) Syntaxfehler, verwenden Sie Python-Mpy_CompileYour_Script.py, um zu erkennen.

Geben Sie ein Beispiel für ein Szenario an, in dem die Verwendung eines Python -Arrays angemessener wäre als die Verwendung einer Liste.Geben Sie ein Beispiel für ein Szenario an, in dem die Verwendung eines Python -Arrays angemessener wäre als die Verwendung einer Liste.Apr 28, 2025 am 12:15 AM

Die Verwendung von Python -Arrays eignet sich besser für die Verarbeitung großer Mengen von numerischen Daten als für Listen. 1) Arrays speichern mehr Speicher, 2) Arrays sind schneller nach numerischen Werten, 3) Konsistenz vom Arrays Kraftstyp, 4) Arrays sind mit C -Arrays kompatibel, sind jedoch nicht so flexibel und bequem wie Listen.

Was sind die Auswirkungen der Leistung bei der Verwendung von Listen im Vergleich zu Arrays in Python?Was sind die Auswirkungen der Leistung bei der Verwendung von Listen im Vergleich zu Arrays in Python?Apr 28, 2025 am 12:10 AM

Listen besser voreflexibilität undmixdatatatypen, während Datensätze der überlegenen sumerischen Berechnungen sandlastete

Wie handelt es sich bei Numpy um die Speicherverwaltung für große Arrays?Wie handelt es sich bei Numpy um die Speicherverwaltung für große Arrays?Apr 28, 2025 am 12:07 AM

NumpymanageMemoryforlargearrayseffictionlyusingViews, Kopien und Memory-Made.1) ViewsAllowsLicing Mit Outcopying, direktModifizierende Theoriginalarray.2) CopieScanbecreated withthecopy () methodeChoperingdata.3) Memory-Maddscanbeed-medellessive-made-mapedFileshandleshandLessive-massessive-massessiva

Was erfordert das Importieren eines Moduls: Listen oder Arrays?Was erfordert das Importieren eines Moduls: Listen oder Arrays?Apr 28, 2025 am 12:06 AM

ListsinpythondonotRequireMportingamodule, whilearRays aus der FROMTHEARRAYMODULEDONEDANIMIMPORT.1) listet zur Verfügung gestellt.

Welche Datentypen können in einem Python -Array gespeichert werden?Welche Datentypen können in einem Python -Array gespeichert werden?Apr 27, 2025 am 12:11 AM

PythonlistscanstoreanyDatatype, ArrayModulearraysStoreOnetype und NumpyarraysarefornumericalComputations.1) listet dieArversatile-memory-effizient.2) Arraymodulenarraysalememory-effizientforhomogeneData.3) Numpharraysareoptional-EffictionhomogenInData.3) nummodulenarraysoptionalinformanceIntata.3) nummodulearraysoptionalinformanceIntata.3) NumpharraysareoPresopplowancalinScesDataa.3) NumpharraysoePerformance

Was passiert, wenn Sie versuchen, einen Wert des falschen Datentyps in einem Python -Array zu speichern?Was passiert, wenn Sie versuchen, einen Wert des falschen Datentyps in einem Python -Array zu speichern?Apr 27, 2025 am 12:10 AM

Wenn SietostoreavalueOfThewrongdatatypeinapythonarray, touencounteratypeerror.Thissisdustuetothearraymodules -SstrictTypeNeen -Forcortion, welche

Welches ist Teil der Python Standard Library: Listen oder Arrays?Welches ist Teil der Python Standard Library: Listen oder Arrays?Apr 27, 2025 am 12:03 AM

PythonlistsarePartThestandardlibrary, whilearraysarenot.listarebuilt-in, vielseitig und UNDUSEDFORSPORINGECollections, während dieArrayRay-thearrayModulei und loses und loses und losesaluseduetolimitedFunctionality.

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

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung