Cómo dividir una cadena con espacios en blanco como delimitadores

Resuelto mcjabberz asked hace 15 años • 13 respuestas

¿Qué patrón de expresiones regulares necesitaría pasar para java.lang.String.split() dividir una cadena en una matriz de subcadenas usando todos los caracteres de espacio en blanco ( ,, ' 'etc. ) como delimitadores?'\t''\n'

mcjabberz avatar Oct 22 '08 18:10 mcjabberz
Aceptado

Algo en las líneas de

myString.split("\\s+");

Esto agrupa todos los espacios en blanco como delimitador.

Entonces si tengo la cadena:

"Hello[space character][tab character]World"

Esto debería producir las cadenas "Hello"y "World"omitir el espacio vacío entre [space]y [tab].

Como señaló VonC, la barra invertida debe tener un carácter de escape, porque Java primero intentaría convertir la cadena en un carácter especial y lo enviaría para su análisis. Lo que quieres es el literal "\s", lo que significa que debes pasar "\\s". Puede resultar un poco confuso.

El \\ses equivalente a [ \\t\\n\\x0B\\f\\r].

Henrik Paul avatar Oct 22 '2008 11:10 Henrik Paul

En la mayoría de los dialectos de expresiones regulares hay un conjunto de resúmenes de caracteres convenientes que puedes usar para este tipo de cosas; estos son buenos para recordar:

\w- Coincide con cualquier carácter de palabra.

\W- Coincide con cualquier carácter que no sea una palabra.

\s- Coincide con cualquier carácter de espacio en blanco.

\S- Coincide con cualquier cosa excepto caracteres de espacios en blanco.

\d- Coincide con cualquier dígito.

\D- Coincide con cualquier cosa excepto dígitos.

Una búsqueda de "Regex Cheatsheets" debería recompensarlo con una gran cantidad de resúmenes útiles.

glenatron avatar Oct 22 '2008 11:10 glenatron

Para que esto funcione en Javascript , tuve que hacer lo siguiente:

myString.split(/\s+/g)
Mike Manard avatar Mar 01 '2012 22:03 Mike Manard