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

Skizit
quelle

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.

Agent-j
quelle
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

Stema
quelle
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 ..

Trauer
quelle
-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.

Loduwijk
quelle