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 [^"]* .