regex - solo - Expresión regular para parar en el primer partido.
probar expresiones regulares (5)
Mi patrón regex se ve algo así como
<xxxx location="file path/level1/level2" xxxx some="xxx">
Sólo estoy interesado en la parte de las citas asignadas a la ubicación. ¿No debería ser tan fácil como abajo sin el codicioso cambio?
/.*location="(.*)".*/
No parece funcionar.
Debe hacer que su expresión regular no sea codiciosa, porque de manera predeterminada, "(.*)"
Coincidirá con todos "file path/level1/level2" xxx some="xxx"
.
En su lugar, puedes hacer que tu punto-estrella no sea codicioso, lo que hará que coincida con la menor cantidad de caracteres posible:
/location="(.*?)"/
Añadiendo un ?
en un cuantificador ( ?
, *
o +
) lo hace no codicioso.
Qué tal si
.*location="([^"]*)".*
Esto evita la búsqueda ilimitada con. * Y coincidirá exactamente con la primera cita.
Utilice una coincidencia no codiciosa, si su motor lo admite. Añade el ? Dentro de la captura.
/location="(.*?)"/
location="(.*)"
coincidirá desde "después de location=
hasta que aparezca" after some="xxx
menos que no sea codicioso. Así que, o bien, necesita .*?
.*
con [^"]*
.