Как мне разделить мою строку с помощью регулярного выражения? - PullRequest
1 голос
/ 19 января 2012

У меня есть строка, которая должна быть разбита на "." (точка) и " " (пробел).Я попытался:

s.split("[\\s\\.]")

, но он не работает, потому что он не разбил эту строку нормально - "123 456 . 11323 1".

Как мне изменить свое регулярное выражение?*

Ответы [ 3 ]

3 голосов
/ 19 января 2012

Я думаю, что вы хотите это:

s.split("[\\s\\.]+");

Обратите внимание на +.Похоже, вы не хотите разбивать каждый (!) Пробел или точки.Вы хотите сопоставить все длины комбинаций пробелов или точек.Вот почему вы должны жадно подбирать как можно больше этих персонажей

2 голосов
/ 19 января 2012

Просто используйте "[\\s.]+" в качестве регулярного выражения.

1 голос
/ 19 января 2012

Вы получите много пробелов, если разделите только один символ.

s.split("[\\s\\.]+")

даст «123», «456», «11323», «1».

+ заставляет его обрабатывать любые пробелы и точки как один разрыв вместо возврата строки между смежными пробелами и точками.

Вы можете по-прежнему получать пустые строки в любом конце ваших результатовс учетом " 123" он будет разделен между началом строки и "123".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...