Mi expresión regular se parece a esto:
(\d \d)(?:, (\d \d))* Con el cual emparejo pares de números, como 1 2, 3 4, 5 6 . El grupo de captura 1 coincidiría una vez aquí, 1 2 , mientras que el grupo de captura 2 coincidiría dos veces, tanto 3 4 como 5 6 , que ambos necesito.
mi problema es que
"1 2, 3 4, 5 6".match(/(\d \d)(?:, (\d \d))*/)devoluciones
["1 2, 3 4, 5 6", "1 2", "5 6"]Mientras que lo que realmente necesito es algo como
["1 2, 3 4, 5 6", "1 2", "3 4", "5 6"]o
["1 2, 3 4, 5 6", ["1 2"], ["3 4", "5 6"]] Nota : por supuesto, la expresión regular real y el problema son un poco más complicados, simplemente hacer coincidir \d \d varias veces en la cadena no es realmente factible para mí.
Esta respuesta sobre una pregunta similar para Perl es correcta en el sentido de que este sería un buen caso de uso para una gramática real, que, sin embargo, no voy a implementar en JavaScript.