Estoy trabajando con un código que usa la expresión regular /(@\w+) ?/g para hacer coincidir las menciones etiquetadas
Esto coincidirá con el siguiente texto devolviendo los grupos correctamente sin el space adicional
probando
@oney@twoy@three
¿Si elimino el espacio opcional ? la expresión regular /(@\w+)/g parece devolver los mismos grupos coincidentes, para el ejemplo anterior y cualquier otra cadena de prueba que haya probado
¿Hay alguna diferencia sutil o caso extremo que me pueda faltar entre estas dos versiones de la expresión regular?
Si hay un espacio, la expresión regular lo coincidirá, pero no afectará a los grupos coincidentes porque el espacio no está en ningún grupo. Solo todo el partido tendrá el espacio.
console.log(...'testing @one and @two and @three'.matchAll(/(@\w+) ?/g)); // [ "@one ", "@one" ] // [ "@two ", "@two" ] // [ "@three", "@three" ] El primer elemento de cada matriz de resultados es la coincidencia completa y el segundo elemento es lo que coincide con el grupo (@\w+) .