Я хотел бы сопоставить все URL из CSS, который я использовал, с этим регулярным выражением, и оно работало очень хорошо.
@[^a-z_]{1}url\s*\((?:\'|"|)(.*?)(?:\'|"|)\)@im
Full match: url(https://example/product.png)
Group 1: https://example/product.png
проблема возникла, когда я нашел такой URL:
background-image: url(/uploads/2019/03/product01-image(thumbnail_photo).jpg);
Full match url(/uploads/2019/03/product01-image(thumbnail_photo)
Group 1. /uploads/2019/03/product01-image(thumbnail_photo
Я посмотрел эту тему и попытался использовать некоторые регулярные выражения, которые существуют с некоторой модификацией
preg_match для соответствия src =, background = и url (..)
результат был такой
@(?:url\((?:\"|'|)(.*\.(?:[a-z_]{3}))(?:\"|'|)\))@im
Full match: url(/uploads/2019/03/product01-image(thumbnail_photo).jpg)
Group 1: /uploads/2019/03/product01-image(thumbnail_photo).jpg
Сначала казалось, что он работает нормально, но он ломается, когда у меня возникает такая ситуация:
.card-thumb__img1{display:block;width:142px;height:62px;background:url(https://example.com/product01.jpg) center center no-repeat;background-size:contain}@media (max-width:1029px).card-thumb__img2{display:block;z-index:1;background:url(https://example.com/product02.jpg) center center no-repeat #000;
Full match: url(https://example.com/product01.jpg) center center no-repeat;background-size:contain}@media (max-width:1029px).card-thumb__img2{display:block;z-index:1;background:url(https://example.com/product02.jpg)
Group 1:https://example.com/product01.jpg) center center no-repeat;background-size:contain}@media (max-width:1029px).card-thumb__img2{display:block;z-index:1;background:url(https://example.com/product02.jpg
Как я могу решить эту проблему и получить ожидаемый результат для всех ситуаций?
Редактировать
Некоторые типы вхождений, которым я должен соответствовать
url(https://exemples.com/fonts/lato/lato/lato-regular-webfont.ttf)
src:url(https://exemples.com/fonts/lato/lato-regular-webfont.eot?#iefix)
background:url(https://exemples.com/product/header/img.png)
background:url(/product/header/img.png)
background:url("/product/header/img.png")
background:url('/product/header/img.png')
background:url(/uploads/2019/03/0002-image(thumbnail_product).jpg)