Tengo esta cadena (o similar):
<img data-src="/images/useJS: "true", useZoom: "#zoom1", image_big: "//cdn.example.com/big.jpg", image_orig: "//cdn.example.com/orig.gif", image_icon: "//thisDomain.com/images/icon.png"" />
...
Estoy usando esta expresión regular en preg_match_all:
preg_match_all("/:s?("[^"]+(.jpe?g|.gif|.png)")/siU", $string, $match);
Los partidos son:
[1][0] => : ", useZoom: "#zoom1", image_big: "//cdn.example.com/big.jpg"
[1][1] => : "//cdn.example.com/big.jpg"
...
Me gusta el segundo partido solo y sin coma en expresiones regulares. No me gusta la primera coincidencia, solo necesito la imagen de uri.
Respuestas
0 para la respuesta № 1Utilizar esta:
preg_match_all("/"[^"]+.(?:jpe?g|gif|png)"/", $string, $match);
Cambié [^"]+
a [^"]+
, por lo que esto solo hará coincidir las cadenas entre comillas simples que terminan en una de las extensiones. Además, necesitas escapar. .
antes de las extensiones por lo que será emparejado literalmente.