Me gustaría poder hacer coincidir una secuencia específica de caracteres, comenzando con una subcadena particular y terminando con una subcadena particular. Mi expresión positiva de preanálisis funciona si solo hay una instancia para unir en una línea, pero no si debe haber múltiples coincidencias en una línea. Entiendo que esto es porque (. +) Captura todo hasta que se encuentra última expresión positiva de búsqueda anticipada. Sería bueno si capturara todo hasta que se encuentre la primera expresión.¿Usar expresiones regulares para hacer coincidir cualquier carácter hasta que se alcance una subcadena?
Aquí es mi expresión regular intento: entrada
@@FOO\[(.*)(?=~~)~~(.*)(?=\]@@)\]@@
muestra:
@@FOO[abc~~hi]@@ @@FOO[def~~hey]@@
salida deseada: 2 partidos, con 2 grupos que coinciden con cada uno (abc, Hawai) y (def, hey).
salida real: 1 partido con 2 grupos (abc ~~ hi] @@ @@ FOO [def, hey)
¿Hay una manera de conseguir el resultado deseado?
¡Gracias de antemano!
¡Gracias, esto es exactamente lo que estaba buscando! Al investigar esto, me centré tanto en los constructos de agrupación que pasé por alto por completo *. – joshm1
De hecho, casi siempre uso '. *?' En lugar de simplemente '. *' Porque casi nunca me refiero a "coincidencia tanto como sea posible" –