Heim >Backend-Entwicklung >PHP-Tutorial >Regex-Quantifizierer: Was ist der Unterschied zwischen „' und „*'?

Regex-Quantifizierer: Was ist der Unterschied zwischen „' und „*'?

Barbara Streisand
Barbara StreisandOriginal
2024-12-26 01:43:10247Durchsuche

Regex Quantifiers: What's the Difference Between ` ` and `*`?

Quantifizierer: Den Unterschied zwischen und * in Regex verstehen

Regex, ein leistungsstarkes Tool für den Textabgleich und die Textbearbeitung, verwendet Quantifizierer, um die zu spezifizieren Anzahl der Vorkommen eines Musters in einer Zeichenfolge. Der Unterschied zwischen den und den *-Quantoren liegt in ihrem gierigen bzw. nicht gierigen Matching-Verhalten.

Der Quantor bedeutet, dass der vorhergehende Ausdruck einmal oder mehrmals vorkommen muss, während der *-Quantor zulässt, dass er null oder mehrere Male erscheint.

Standardmäßig sind Quantoren gierig, d. h. sie stimmen mit so vielen Zeichen wie möglich überein. Das Anhängen eines ? Nachdem der Quantifizierer das Verhalten in „ungeredy“ geändert hat, sodass möglichst wenige Zeichen übereinstimmen.

Beispiel: Greedy vs. Ungreedy Matching

Betrachten Sie die Zeichenfolge „abab " und die regulären Ausdrücke:

  • a.*b: Entspricht der gesamten Zeichenfolge „abab“ (preg_match_all würde eine Übereinstimmung zurückgeben)
  • a.*?b: Entspricht nur der beginnenden Zeichenfolge „ab“ (preg_match_all würde zwei Übereinstimmungen zurückgeben)

Der gierige Quantor im ersten Beispiel stimmt mit so vielen Zeichen wie möglich überein, während der ungierige Quantor im zweiten Beispiel nur mit den Zeichen übereinstimmt wesentliche Zeichen, um den Ausdruck zu erfüllen.

Anwendung:

Der ungierige Quantifizierer kann nützlich sein, wenn Sie bestimmte Teilzeichenfolgen erfassen oder die Übereinstimmung unerwünschter Zeichen vermeiden möchten. Beim Parsen von HTML-Tags könnte der gierige Quantifizierer beispielsweise zu viel mit einem Tag, einschließlich seines Inhalts, übereinstimmen, während der ungierige Quantifizierer sicherstellt, dass er nur mit dem Tag selbst übereinstimmt.

Das obige ist der detaillierte Inhalt vonRegex-Quantifizierer: Was ist der Unterschied zwischen „' und „*'?. 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