Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
-6 / 14 / 0
Регистрация: 05.02.2013
Сообщений: 131
1

Регулярное выражение для поиска url и класса в css

21.05.2017, 10:56. Просмотров 1102. Ответов 1
Метки нет (Все метки)


Здравствуйте.
Помогите пожалуйста с php регуляркой т.к я немного запутался:
Есть css код:
CSS
1
.vc_custom_1495270637194{margin-top: 20px !important;margin-bottom: 20px !important;background: #8224e3 url([url]http://dev.wp/wp-content/uploads/revslider/cs-001/045.jpeg?id=34[/url]) !important;background-position: center !important;background-repeat: no-repeat !important;background-size: contain !important;border-radius: 3px !important;}.vc_custom_1495305344284{background-color: #dd9933 !important;}.vc_custom_1495271067844{background-image: url([url]http://dev.wp/wp-content/uploads/2016/07/thumb-14-ziscod.jpg?id=4[/url]) !important;} @font-face {font-family: 'star';src: url('assets/fonts/star/star.eot');src: url('assets/fonts/star/star.eot?#iefix') format('embedded-opentype'),url('assets/fonts/star/star.woff') format('woff') }
Из него необходимо выбрать названия классов, и url картинок которые эти классы содержат. Т.е из кода выше на выходе должно быть следующее:
.vc_custom_1495270637194 -> http://dev.wp/wp-content/uploa... jpeg?id=34
.vc_custom_1495271067844 -> http://dev.wp/wp-content/uploa... d.jpg?id=4


Для выборки я написал такой код:
PHP
1
preg_match_all('/(.vc_custom_(\d*?))\s*\{.*?url\((.*?)\).*?\}/', $shortcodes_custom_css , $matches, PREG_SET_ORDER);
В принципе он справляется с задачей, только ищет криво и иногда берет не те значения

Пожалуйста, можете подсказать как изменить код (или вообще может быть новый написать) что бы все корректно работало?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2017, 10:56
Ответы с готовыми решениями:

Регулярное выражение для удаления URL из строки
Задача состоит в том, чтоб находить УРЛ в строке Например в названии файла: imagewww.не понятно...

Регулярное выражение для поиска
Помогите с регулярными выражениями при парсинге. Скачиваю страницу. <td colspan="1"><font...

Регулярное выражение для поиска заголовков
Ребят, привет. Помогите слегка, немного туплю. Нужно составить программу для подсчета предложений...

Регулярное выражение для поиска и замены
Привет! Прошу помощи сообщества - нужно составить регулярное выражение для поиска и замены в...

1
998 / 625 / 371
Регистрация: 07.11.2015
Сообщений: 998
21.05.2017, 14:36 2
Код
\{.*?url
Тут идёт поиск ближайшего url, но метасимвол точка совпадает с любым символом и поиск не остановится на первой закрывающей скобке.
PHP
1
2
3
4
$shortcodes_custom_css = ".vc_custom_1495270637194{margin-top: 20px !important;margin-bottom: 20px !important;background: #8224e3 url(http://dev.wp/wp-content/uploads/revslider/cs-001/045.jpeg?id=34) !important;background-position: center !important;background-repeat: no-repeat !important;background-size: contain !important;border-radius: 3px !important;}.vc_custom_1495305344284{background-color: #dd9933 !important;}.vc_custom_1495271067844{background-image: url(http://dev.wp/wp-content/uploads/2016/07/thumb-14-ziscod.jpg?id=4) !important;} @font-face {font-family: 'star';src: url('assets/fonts/star/star.eot');src: url('assets/fonts/star/star.eot?#iefix') format('embedded-opentype'),url('assets/fonts/star/star.woff') format('woff') }";
preg_match_all('/(\.vc_custom_\d*)\s*\{[^}]*?url\(([^)]*)/', $shortcodes_custom_css, $matches);
$result = array_combine($matches[1], $matches[2]);
print_r($result);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2017, 14:36

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Регулярное выражение для поиска слова
У меня есть файл, содержащий строки с текстом: Предложение номер один Второе предложение, оно...

Регулярное выражение для поиска символов в строке
Программа должна искать символы abcdef12345 в вводимой в консоль строке. Регулярное выражение +...

Регулярное выражение для поиска определенных ссылок
для примера имеется следующий текст: <meta name="msapplication-task"...

Регулярное выражение, для поиска файлов по расширению
Собственно есть список файлов. Среди них есть файлы следующие файлы: msdaf.txt fdaasd.bin...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.