Was müßte mich RegexMuster passieren zu java.lang.String.split()
einem String in ein Array von Teil Zeichen mit allen Leerzeichen zu trennen ( ' '
, '\t'
, '\n'
, etc.) als Trennzeichen?
quelle
Was müßte mich RegexMuster passieren zu java.lang.String.split()
einem String in ein Array von Teil Zeichen mit allen Leerzeichen zu trennen ( ' '
, '\t'
, '\n'
, etc.) als Trennzeichen?
Etwas in den Zeilen von
myString.split("\\s+");
Dadurch werden alle Leerzeichen als Trennzeichen gruppiert.
Also, wenn ich die Zeichenfolge habe:
"Hello[space][tab]World"
Dies sollte die Zeichenfolgen ergeben "Hello"
und "World"
den leeren Raum zwischen dem [space]
und dem weglassen [tab]
.
Wie VonC betonte, sollte der Backslash maskiert werden, da Java zuerst versuchen würde, die Zeichenfolge einem Sonderzeichen zu maskieren und diese zum Parsen zu senden . Was Sie wollen, ist das Wörtliche "\s"
, was bedeutet, dass Sie bestehen müssen "\\s"
. Es kann etwas verwirrend werden.
Das \\s
entspricht [ \\t\\n\\x0B\\f\\r]
.
trim()
zuersttrim().split("\\s++")
Folgendes tun müssen : - Andernfalls werden beim Teilen von `abc` zuerst zwei leere Zeichenfolgen ausgegeben."\\\\s"
?In den meisten Regex-Dialekten gibt es eine Reihe praktischer Charakterzusammenfassungen, die Sie für diese Art von Dingen verwenden können - dies sind gute, an die Sie sich erinnern sollten:
\w
- Entspricht einem beliebigen Wortzeichen.\W
- Entspricht einem beliebigen Nichtwortzeichen.\s
- Entspricht einem beliebigen Leerzeichen.\S
- Entspricht alles andere als Leerzeichen.\d
- Entspricht einer beliebigen Ziffer.\D
- Entspricht allem außer Ziffern.Eine Suche nach "Regex Cheatsheets" sollte Sie mit vielen nützlichen Zusammenfassungen belohnen.
quelle
Damit dies in Javascript funktioniert , musste ich Folgendes tun:
quelle
"\\ s +" sollte den Trick machen
quelle
Möglicherweise haben Sie auch einen UniCode-Leerzeichen xA0 ...
quelle
quelle
Apache Commons Lang verfügt über eine Methode zum Teilen einer Zeichenfolge mit Leerzeichen als Trennzeichen:
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#split(java.lang.String)
Dies ist möglicherweise einfacher zu verwenden als ein Regex-Muster.
quelle
Da es sich um einen regulären Ausdruck handelt und ich davon ausgehe, dass Sie auch keine nicht alphanumerischen Zeichen wie Kommas, Punkte usw. möchten, die von Leerzeichen umgeben sein könnten (z. B. "eins, zwei" sollte [eins] [zwei] geben), es sollte sein:
quelle
Mit der folgenden Anweisung können Sie eine Zeichenfolge nach Zeilenumbruch aufteilen:
Mit der folgenden Anweisung können Sie eine Zeichenfolge nach Leerzeichen aufteilen:
quelle
quelle
Studieren Sie diesen Code .. viel Glück
quelle