Co regex wzór I musiałby przejść do java.lang.String.split()
rozdzielić ciąg na tablicę podciągów z wykorzystaniem wszystkich białych znaków ( ' '
, '\t'
, '\n'
itd) jako ograniczniki?
java
string
whitespace
split
mcjabberz
źródło
źródło
trim()
najpierw:trim().split("\\s++")
- w przeciwnym razie, np. Podzielenie `abc` wyemituje najpierw dwa puste ciągi."\\\\s"
?W większości dialektów wyrażeń regularnych istnieje zestaw wygodnych streszczeń postaci, których możesz użyć do tego rodzaju rzeczy - warto o nich pamiętać:
\w
- Dopasowuje dowolny znak słowa.\W
- Dopasowuje dowolny znak niebędący słowem.\s
- Pasuje do każdego znaku białej spacji.\S
- Pasuje do wszystkich znaków oprócz białych znaków.\d
- Pasuje do dowolnej cyfry.\D
- Dopasowuje wszystko oprócz cyfr.Poszukiwanie „Regex Cheatsheets” powinno nagrodzić cię wieloma przydatnymi streszczeniami.
źródło
Aby to działało w JavaScript , musiałem wykonać następujące czynności:
źródło
„\\ s +” powinno załatwić sprawę
źródło
Możesz także mieć niełamującą spację xA0 UniCode ...
źródło
źródło
Apache Commons Lang ma metodę dzielenia łańcucha znakami spacji jako ograniczników:
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#split(java.lang.String)
Może to być łatwiejsze w użyciu niż wzorzec wyrażenia regularnego.
źródło
Ponieważ jest to wyrażenie regularne i zakładam, że nie chciałbyś także znaków innych niż alfanumeryczne, takich jak przecinki, kropki itp., Które mogłyby być otoczone spacjami (np. „Jeden, dwa” powinien dać [jeden] [dwa]), powinno być:
źródło
możesz podzielić ciąg według podziału wiersza, używając następującej instrukcji:
możesz podzielić ciąg według białych znaków, używając następującej instrukcji:
źródło
źródło
Przestudiuj ten kod ... powodzenia
źródło