Symbol für eine beliebige Anzahl von Zeichen in Regex?


142

Ich frage mich, ob es ein Symbol für eine beliebige Anzahl (einschließlich Null) von Zeichen gibt

Antworten:



32

Sie können diesen regulären Ausdruck (ein beliebiges Leerzeichen oder ein beliebiges Nicht-Leerzeichen) so oft wie möglich bis einschließlich 0 verwenden.

[\s\S]*

Dieser Ausdruck entspricht so wenig wie möglich, aber so vielen wie für den Rest des Ausdrucks erforderlich.

[\s\S]*?

Zum Beispiel in dieser Regex [\s\S]*?Bpaßt auf aBin aBaaaaB. Aber in dieser Regex [\s\S]*Bpaßt auf aBaaaaBin aBaaaaB.


Gibt es einen Unterschied zwischen [\ s \ S] und.?
Linqu

8
@linqu, passt .manchmal nicht \n(Zeilenumbruch), abhängig von der mehrzeiligen Option, stimmt aber [\s\S]mit jedem Zeichen überein.
Agent-j

19

Meinst du

.*

. Jedes Zeichen außer Newline-Zeichen enthält im Dotall-Modus auch die Newline-Zeichen

* Beliebige Menge des vorhergehenden Ausdrucks, einschließlich 0-mal


4

Ich würde verwenden .*. .Entspricht einem beliebigen Zeichen und *bedeutet 0 oder mehr Vorkommen. Möglicherweise benötigen Sie einen DOTALL-Schalter zur Regex, um neue Zeilen mit zu erfassen ..


-7

Ja, es gibt einen, es ist das Sternchen: *

a* // looks for 0 or more instances of "a"

Dies sollte in jedem Java-Regex-Tutorial oder in jeder Dokumentation behandelt werden, die Sie nachschlagen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.