Welches Regex-Muster muss ich an java.lang.String.split()
um eine Zeichenkette in ein Array von Teilzeichenketten unter Verwendung aller Leerzeichen aufzuteilen ( ' '
, '\t'
, '\n'
, usw.) als Trennzeichen?
Antworten
Zu viele Anzeigen?Etwas in der Art von
myString.split("\\s+");
Damit werden alle Leerzeichen als Begrenzungszeichen zusammengefasst.
Wenn ich also die Zeichenfolge habe:
"Hello[space character][tab character]World"
Dies sollte die folgenden Zeichenfolgen ergeben "Hello"
y "World"
und lassen Sie das Leerzeichen zwischen den [space]
und die [tab]
.
Wie VonC anmerkte, sollte der Backslash mit einem Escape-Zeichen versehen werden, da Java zunächst versuchen würde, die Zeichenkette in ein Sonderzeichen umzuwandeln, und dann dass geparst werden. Was Sie wollen, ist die wörtliche "\s"
Das heißt, Sie müssen die "\\s"
. Das kann ein bisschen verwirrend sein.
El \\s
ist gleichbedeutend mit [ \\t\\n\\x0B\\f\\r]
.
In den meisten Regex-Dialekten gibt es eine Reihe von bequemen Zeichenzusammenfassungen, die Sie für diese Art von Dingen verwenden können - diese sind gut zu merken:
\w
- Entspricht einem beliebigen Wortzeichen.
\W
- Passt zu jedem Nicht-Wort-Zeichen.
\s
- Passt auf jedes beliebige Leerzeichen.
\S
- Passt auf alles außer Leerzeichen.
\d
- Entspricht einer beliebigen Ziffer.
\D
- Passt zu allem außer Ziffern.
Eine Suche nach "Regex Cheatsheets" sollte Sie mit einer ganzen Reihe nützlicher Zusammenfassungen belohnen.
- See previous answers
- Weitere Antworten anzeigen