Вопрос-ответ

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, мне пришлось сделать следующее:

myString.split(/\s+/g)
Ответ 4

"\\ s +" должно сработать

java string