Tengo el siguiente fragmento de javascript en cadena que me gustaría capturar cada caso usando expresiones regulares
// case 1 let something = 1 something++ // case 2 const somethingElse = 2 const x = somethingElse + 10 // whatever // case 3 enter code hereLos casos continúan infinitamente ... así que estoy buscando una expresión regular que capture cada caso con todo el código correspondiente hasta que se alcance el siguiente caso.
ejemplo de la primera coincidencia debe ser
// case 1 let something = 1 something++Lo mejor que pude obtener es lo siguiente, pero siempre ignora el último caso
([\/]{2}[\s]*?case[\s\S]+?(?=[\/]{2}))Obviamente, Lookahead es la razón, tenía otras formas de expresiones regulares pero no pude obtener una expresión regular a prueba de balas.
Nota: todos los casos deben identificarse de forma coherente. El ejemplo anterior está usando un case [digit]
¡Cualquier ayuda es apreciada!
Puede usar una simple alternancia en su mirada hacia el futuro:
/([\/]{2}[\s]*?case[\s\S]+?(?=[\/]{2}|$))/gi Acabo de agregar |$ en la anticipación, lo que significa: OR end of text
Por lo tanto, mirará hacia adelante para / o final de texto.