test solo regulares regular regexp probar numeros expresiones expresion example espacio ejemplos blanco alfanumerico regex

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.


¿Uso de cuantificadores perezosos ? Sin bandera global es la respuesta.

P.ej,

Si tuvieras una bandera /g global, habría coincidido con todas las coincidencias de menor longitud como se muestra a continuación.


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