Saltar al contenido

Expresión regular para una lista de elementos separados por coma o por coma y un espacio

Solución:

Lo que estás buscando es engañosamente fácil:

[^,]+ 

Esto le dará cada token separado por comas y excluirá los tokens vacíos (si el usuario ingresa “a ,, b”, solo obtendrá ‘a’ y ‘b’), PERO se romperá si ingresa “a,, B”.

Si desea eliminar los espacios de cualquier lado correctamente (y excluir solo los elementos de espacio en blanco), entonces se vuelve un poco más complicado:

[^,s][^,]*[^,s]*

Sin embargo, como se ha mencionado en algunos de los comentarios, ¿por qué necesita una expresión regular en la que una simple división y recorte funcionará?

Suponiendo que las palabras en su lista pueden ser letras de la a a la z y usted permite, pero no requiere, un espacio después de los separadores de coma, su reg exp sería
[a-z]+ (, s *[a-z]+) *

Esto coincide con “ab” o “ab, de”, pero no con “ab, dc”

Este hilo tiene casi 7 años y estuvo activo por última vez hace 5 meses, pero quería lograr los mismos resultados que OP y después de leer este hilo, encontré una solución ingeniosa que parece funcionar bien

.match(/[^,s?]+/g)

Aquí hay una imagen con un código de ejemplo de cómo lo estoy usando y cómo está funcionando

ingrese la descripción de la imagen aquí

Con respecto a la expresión regular … supongo que una declaración más precisa sería decir “apunte a cualquier cosa que NO sea una coma seguida de una cantidad (opcional) de espacio en blanco”.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *