Aquí está mi código expresiones regulares:Regex: Encontrar las direcciones URL en Imagen de fondo CSS, tiene problemas para
preg_match_all('/background[-image]*:[\s]*url\(["|\']+(.*)["|\']+\)/', $css, $matches, PREG_SET_ORDER);
Se busca CSS que tiene este aspecto:
background:url('../blah.jpg');
Mi problema que estoy teniendo es un poco de CSS que raspadura se ve así:
background:transparent url('../blah.jpg');
background:transparent no-repeat url('../blah.jpg');
no soy un experto cuando se trata de expresiones regulares, por lo que me pregunto cómo puedo decirle que se omita nada después de los dos puntos y antes de la URL.
BTW, '' agrega la cadena coincidente a '$ matches ['image']'? ¡No lo sabía! ¡Bien! –
safrazik
Sí. $ matches normalmente captura todos los valores entre paréntesis y la coincidencia completa, pero una vez que sepa exactamente dónde desea obtener, independientemente de dónde se encuentre en su expresión regular, puede usar etiquetas. Es mucho más práctico. – inhan
Gracias por la explicación :) – safrazik