¿Preservar los espacios en blanco al usar .split?
Estoy intentando dividir una cadena y almacenarla en un arreglo, de manera que cada palabra se almacene en un índice separado. También quiero que los espacios en blanco y cualquier signo de puntuación se almacenen.
por ejemplo: “¡Hola mundo!” se almacenaría como:
array[0]: “¡Hola”
array[1]: ” ”
array[2]: “mundo!”
Actualmente estoy utilizando .split pero no puedo descifrar cómo dividir la cadena de manera que se divida al final de la palabra y también almacene el espacio en blanco.
strArray = str.split(” “);
davy.ai
Para dividir la cadena y incluir los espacios en blanco y la puntuación, se puede utilizar una expresión regular como parámetro para el método split. El siguiente código dividirá la cadena al final de cada palabra e incluirá cualquier espacio en blanco o puntuación:
La expresión regular
(?<=\b|\W)
es una búsqueda hacia atrás positiva que coincide con una posición que está inmediatamente precedida por un límite de palabra\b
o un carácter que no es una palabra\W
. Esto significa que el método split dividirá la cadena al final de cada palabra o carácter que no sea una palabra, e incluirá el espacio en blanco o la puntuación en el array resultante.El array resultante será: