|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - PHP - регулярные выражения: HELP |
|
|
Разное - PHP - регулярные выражения: HELP
|
Новый участник Сообщения: 5 |
Профиль | Отправить PM | Цитировать никак не могу разобраться с регулярными выражениями, помогите
нужно выцепить имя картинки в строке(ах): <img src="somefile.gif" alt=""> <img src=somefile.gif alt=""> <img src = somefile.gif> с помощью функции preg_match_all |
|
Отправлено: 21:45, 07-08-2004 |
редкий гость Сообщения: 1696
|
Профиль | Сайт | Отправить PM | Цитировать <?php $test = <<<TEST some text <imG src=image.gif> another text text continues <iMg src= "image.png" Alt=text> txt < img src ='image.jpg' alt ="text sfds" sOme="other tags"> text again <img src=iMAGE.tiff alt=""> that's all, folks! TEST; // регэксп длинный, я его немножко разбил $src_part = 'src\s*=\s*("[^"]*"|\'[^\']*\'|[^\s]+)'; $alt_part = '(\s+alt\s*=\s*("[^"]*"|\'[^\']*\'|[^\s]+))?'; preg_match_all('/<\s*img\s+'.$src_part.$alt_part.'(.*?)>/i', $test, $result); echo '<pre>'; print_r($result); echo '</pre>'; ?> Array ( [0] => Array ( [0] => <imG src=image.gif> [1] => <iMg src= "image.png" Alt=text> [2] => < img src ='image.jpg' alt ="text sfds" sOme="other tags"> [3] => <img src=iMAGE.tiff alt=""> ) [1] => Array ( [0] => image.gif [1] => "image.png" [2] => 'image.jpg' [3] => iMAGE.tiff ) [2] => Array ( [0] => [1] => Alt=text [2] => alt ="text sfds" [3] => alt="" ) [3] => Array ( [0] => [1] => text [2] => "text sfds" [3] => "" ) [4] => Array ( [0] => [1] => [2] => sOme="other tags" [3] => ) ) Важное замечание: после img обязательно должно быть src, а не какой-либо другой тэг. И alt, если он есть, дожен быть обязательно после src, иначе он не выцепится. Я когда-то давно делал на php парсер html (свой двигатель шаблонов делал), у него этих проблем не было бы, но он давно утерян |
------- Отправлено: 17:41, 08-08-2004 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Тема перемещена сюда
|
------- Отправлено: 01:05, 09-08-2004 | #3 |
Engrossed by the Void Сообщения: 2229
|
Профиль | Отправить PM | Цитировать Тема перемещена сюда
|
------- Отправлено: 01:05, 09-08-2004 | #4 |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать Помогите пожалуйста с регулярным выражением-никак не получается написать нужное или хотя бы реально работающее.
Задача: выцеплять адреса вида любойвозможныйадрес.ru и не кушать при этом никакие адреса почтовых ящиков Уж как только не пытался - и через [^@], и через ретроспективную негативную проверку, и жёстким заданием - не получается или получается то, работы чего я не понимаю. Исходник, понятно [a-zA-Z0-9]+\.[rR][uU] |
|
------- Отправлено: 22:06, 06-09-2008 | #5 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать обалдеваю я с людей: Delion Soulblade столько букв написал, а ничего конкретного не сказал. Может в этом и проблема, что не смог сформулировать чётких условий? Домены только второго уровня? Не русскоязычные? Из произвольного текста?
|
Отправлено: 14:12, 07-09-2008 | #6 |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать Ей-богу, не знаю уж в чём проблема и посему прошу помощи.
В моём случае без разницы какого уровня. Не русскоязычные. Из любой части любого текста, фразы или слова. И, главное, чтобы при этом не затрагивались адреса почтовых ящиков. |
------- Отправлено: 20:48, 07-09-2008 | #7 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Delion Soulblade, может быть пусть затрагиваются? Потом пройтись по массиву найденных адресов поиском, да исключить все вхождения с собакой.
|
Отправлено: 21:06, 07-09-2008 | #8 |
Пользователь Сообщения: 147
|
Профиль | Отправить PM | Цитировать Да вот нет...не будет никакого массива, фильтрацию нужно осуществлять "вживую".
|
------- Отправлено: 22:16, 07-09-2008 | #9 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Delion Soulblade, ещё раз повторяю: напиши чётко что должно извлекаться и откуда. В частности, как быть с длинными адресами - содержащими путь к файлу; просто имеющих дробь на конце и т.п. Их надо игнорировать или извлекать из них адрес верхнего домена?
|
Отправлено: 14:19, 08-09-2008 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
регулярные выражения | Ginger | Вебмастеру | 60 | 21-03-2012 01:11 | |
[решено] PHP|регулярные выражения, preg_match | morgan1991 | Вебмастеру | 11 | 10-03-2010 01:03 | |
PHP - регулярные выражения: HELP | GoldenOrb | Вебмастеру | 13 | 18-07-2008 16:05 | |
PHP. Регулярные выражения и русские символы. | Prisoner | Вебмастеру | 3 | 16-01-2004 14:31 | |
Регулярные выражения | est | Хочу все знать | 6 | 02-10-2002 14:17 |
|