Estoy tratando de escribir un patrón para la extracción de la ruta de los archivos encontrados en las etiquetas img de HTML.

String string = "<img src=\"file:/C:/Documents and Settings/elundqvist/My Documents/My Pictures/import dialog step 1.JPG\" border=\"0\" />";

Mi Patrón:

src\s*=\s*\"(.+)\"

Problema es que mi patrón se incluye también el ‘border=»0″ parte de la etiqueta img.

Qué patrón se correspondería con el URI de la ruta de ese archivo, sin incluir el ‘border=»0″?

OriginalEl autor willcodejavaforfood | 2009-01-16

6 Comentarios

  1. 31

    Su patrón debe ser (sin escape):

    src\s*=\s*"(.+?)"

    La parte importante es el agregado de signo de interrogación que coincide con el grupo de cuantas veces como sea posible

    TY que ha funcionado 🙂

    OriginalEl autor Sebastian Dietz

  2. 8

    Este solo agarra el src sólo si es dentro de una etiqueta y no cuando está escrito en ninguna otra parte como texto sin formato. También comprueba si has añadido otros atributos antes o después de que el atributo src.

    También, determina si usted está utilizando una sola (‘) o dobles ( «» ) comillas.

    \<img.+src\=(?:\"|\')(.+?)(?:\"|\')(?:.+?)\>

    Así que para PHP que iba a hacer:

    preg_match("/\<img.+src\=(?:\"|\')(.+?)(?:\"|\')(?:.+?)\>/", $string, $matches);
    echo "$matches[1]";

    para JavaScript que haría:

    var match = text.match(/\<img.+src\=(?:\"|\')(.+?)(?:\"|\')(?:.+?)\>/)
    alert(match[1]);

    Espero que ayude.

    Si yo soy desea obtener todos los atributos (título, src, alt), ¿cuáles son las modificaciones necesarias con el anterior patrón regex. Gracias de antemano.

    OriginalEl autor Alfonse

  3. 8

    Probar esta expresión:

    src\s*=\s*"([^"]+)"
    gracias a este regexp funciona muy bien 🙂
    Así mismo, gracias me ahorro un poco de cordura.

    OriginalEl autor Gumbo

  4. 1

    Estoy tratando de escribir un patrón para la extracción de la ruta de los archivos encontrados en las etiquetas img de HTML.

    Podemos tener un autoresponder para «no usar regex para analizar [X]HTML»?

    Problema es que mi patrón se incluye también el ‘border=»0″ parte de la etiqueta img.

    No mencionar cualquier momento » src=» » aparece en texto plano!

    Si usted sabe de antemano el formato exacto de los códigos HTML que vamos a analizar (por ejemplo. porque has generado tú mismo), usted puede conseguir lejos con él. Pero de lo contrario, regex es completamente la herramienta equivocada para el trabajo.

    OriginalEl autor bobince

  5. 0

    Quieres jugar con los codiciosos forma de grupo de captura. Algo así como

    src\\s*=\\s*\"(.+)?\"

    Por defecto, la expresión regular que se trate y el partido tanto como sea posible

    Usted necesita poner el signo de interrogación dentro de los paréntesis, como Sebastian hizo.

    OriginalEl autor oxbow_lakes

  6. 0

    Me gustaría ampliar más sobre este tema, como generalmente la src atributo viene no cotizadas por lo que el regex para tomar el cotizados y no cotizados src atributo es:

    src\s*=\s*"?(.+?)["|\s]

    OriginalEl autor Brlja

Dejar respuesta

Please enter your comment!
Please enter your name here