How to split a string with any whitespace chars as delimiters
Как разделить строку с любыми пробелами в качестве разделителей
Какой шаблон регулярных выражений мне нужно будет передать, чтобы java.lang.String.split() разбить строку на массив подстрок, используя все пробелы (' ', '\t', '\n' и т.д.) В качестве разделителей?
Переведено автоматически
Ответ 1
Что-то в строках
myString.split("\\s+");
Это группирует все пробелы в качестве разделителя.
Итак, если у меня есть строка:
"Hello[space character][tab character]World"
Это должно привести к получению строк "Hello" и "World" и опустить пустое пространство между [space] и [tab].
Как указал VonC, обратная косая черта должна быть экранирована, потому что Java сначала попытается экранировать строку до специального символа и отправить это на синтаксический анализ. То, что вы хотите, это литерал "\s", что означает, что вам нужно передать "\\s". Это может немного сбить с толку.
\\s Эквивалентно [ \\t\\n\\x0B\\f\\r].
Ответ 2
В большинстве диалектов регулярных выражений есть набор удобных сводок символов, которые вы можете использовать для такого рода задач - их полезно запомнить:
\w - Соответствует любому символу word.
\W - Соответствует любому символу, не являющемуся словом.
\s - Соответствует любому символу пробела.
\S - Соответствует чему угодно, кроме символов пробела.
\d - Соответствует любой цифре.
\D - Соответствует чему угодно, кроме цифр.
Поиск по "Контрольным таблицам регулярных выражений" должен вознаградить вас множеством полезных сводок.
Ответ 3
Чтобы это заработало в Javascript, мне пришлось сделать следующее: