In Regex, was bedeutet \ w * bedeuten?

In Python R ^ [\ w *] $

Was heißt das

6 Solutions collect form web for “In Regex, was bedeutet \ w * bedeuten?”

Schnelle Antwort: Match eine Zeichenfolge, die aus einem einzigen Zeichen, wo dieses Zeichen ist alphanumerisch (Buchstaben, Zahlen) ein Unterstrich ( _ ) oder ein Sternchen ( * ).

Details:

  • Das " \w " bedeutet "irgendein Wortzeichen", das normalerweise alphanumerisch bedeutet (Buchstaben, Zahlen, unabhängig vom Fall) plus Unterstrich (_)
  • Die "Anker" an den Anfang eines Strings und die " $ " "Anker" Zum Ende eines Strings, was bedeutet, dass in diesem Fall das Match am Anfang eines Strings beginnen und enden muss Das Ende der Zeichenfolge.
  • Die [] bedeutet eine Zeichenklasse, die "Übereinstimmung mit jedem Zeichen in der Zeichenklasse" bedeutet.

Es ist auch erwähnenswert, dass normale Zitier- und Fluchtregeln für Streicher es sehr schwierig machen, reguläre Ausdrücke einzugeben (alle Backslashs müssten mit zusätzlichen Backslashs entkommen), also in Python gibt es eine spezielle Notation, die ihre eigenen speziellen Zitatregeln hat Dass alle Backslashs richtig interpretiert werden können und das ist das, was das " r " am Anfang ist.

Anmerkung: Normalerweise bedeutet ein Sternchen ( * ) "0 oder mehr der vorherigen Sache", aber im obigen Beispiel hat es nicht diese Bedeutung, da das Sternchen innerhalb der Charakterklasse ist, so verliert es seine "Spezialität" .

Für weitere Informationen über reguläre Ausdrücke in Python, die beiden offiziellen Referenzen sind die re-Modul , die Regular Expression HOWTO .

Als exhuma sagte, \ w ist jeder Wort-Charakter (alphanumerisch wie Jonathan klärt).

Jedoch weil es in eckigen Klammern ist, wird es passen:

  1. Ein einzelnes alphanumerisches Zeichen OR
  2. Ein Sternchen (*)

Also der ganze reguläre Ausdruck entspricht:

  • Der Anfang einer Zeile (^)
  • Gefolgt von einem einzigen alphanumerischen Zeichen oder einem Sternchen
  • Gefolgt von dem Ende einer Zeile ($)

So würde folgendes passieren:

 blah z <- matches this line blah 

oder

 blah * <- matches this line blah 

Von Anfang an dieser Zeile, "beliebige Anzahl von Wort Zeichen (Buchstabe, Zahl, Unterstrich)" bis zum Ende der Zeile.

Ich bin mir nicht sicher, warum es in eckigen Klammern ist, da Kreisklammern (zB "(" und ")") korrekt sind, wenn man den passenden Text zurücksenden möchte.

\ W ist gleichbedeutend mit [a-zA-Z0-9_] Ich verstehe das * nach ihm oder dem [] um ihn herum, denn \ w ist schon eine Klasse und * in Klassendefinitionen macht keinen Sinn.

\ W bezieht sich auf 0 oder mehr alphanumerische Zeichen und den Unterstrich. Das * in deinem Fall ist auch innerhalb der Charakterklasse, also würde [\ w *] alle [a-zA-Z0-9_ *] übereinstimmen (das * wird wörtlich interpretiert)

Siehe http://www.regular-expressions.info/reference.html

Zitieren:

\ D, \ w und \ s — Kurzzeichenklassen, die mit Ziffern, Wortzeichen und Whitespace übereinstimmen. Kann innerhalb und außerhalb der Charakterklassen verwendet werden.

Bearbeiten korrigiert als Antwort auf Kommentar

Wie oben gesagt, bedeutet jedes Wort. So könntest du dies im Kontext von unten nutzen

 view.aspx?url=[\w] 

Was bedeutet, dass du ein beliebiges Wort als Wert des Parameters "url =" haben kannst

  • Python: Man versuche mehrfach
  • Gibt es einen Unterschied zwischen "weiter" und "pass" in einer for-Schleife in Python?
  • Was bedeutet print (... sep = '', '\ t') bedeutet?
  • Python: Erweiterte Verschachtelte List-Verständnis-Syntax
  • Was bedeutet?
  • Python If Statement mit mehreren Bedingungen
  • Assoziativität von "in" in Python?
  • Python-Syntaxfehler
  • Wenn Aussage mit zwei Bedingungen in Python
  • Was ist lieber in Python zu verwenden: Lambda-Funktionen oder verschachtelte Funktionen ('def')?
  • Syntaxfehler beim Versuch, Argumente zu parsen Python-Shell
  • Python ist die beste Programmiersprache der Welt.