Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [PHP] регулярки


Автор: sergejzr 16.4.2009, 20:42
Ребята, мне необходимо распарсить идентификаторы документор с различных УРЛей.


Вот примерный список. Жирным выделены нужные части:
http://www.ipernity.com/doc/15940/1075954
http://www.ipernity.com/doc/15940/1075954/
http://www.ipernity.com/doc/15940/1075954?52354

http://www.flickr.com/photos/10140728@N02/2252620282
http://www.flickr.com/photos/10140728@N02/2252620282/
http://www.flickr.com/photos/10140728@N02/2252620282?sdsdgdsg

http://www.youtube.com/watch?v=qmCEQVcNp4s
http://www.youtube.com/watch?v=qmCEQVcNp4s&feature=related
http://www.youtube.com/?v=qmCEQVcNp4s
http://www.youtube.comwatch?v=qmCEQVcNp4s

http://vimeo.com/263821/l:app-1530
http://vimeo.com/263821/l:app-1530?gdsgsdfg
http://vimeo.com/263821

http://www.slideshare.net/JanSchmidt/ergebnisse-der-bildblogleserbefragung
http://www.slideshare.net/JanSchmidt/ergebnisse-der-bildblogleserbefragung?sgdfgdfgd


Как-то у меня не получается для каждой из этих групп сделать регулярку. Всё время где-нибудь вылетает..

Автор: Rififi 16.4.2009, 21:29
Обычная нудная работа по сотавлению регэкспов
вот для первой группы
/http:\/\/[^\s]+\d\/(\d+)(?:\?\d+)?/
онлайн-парсеры тебе вв помощь

Автор: enof 16.4.2009, 21:31
1 и 2
Код

preg_match('#.*/(\d+)(\?\d+|/)?$#', $str, $out);

3
Код

preg_match('#\?v=([^&]+)#', $str, $out);

4
Код

preg_match('#/(\d+)/#', $str, $out);

5
Код

preg_match('#/([^/]*)(?:\?.*)?$#U', $str, $out);

Автор: enof 16.4.2009, 22:50
Или одной нужно?
Код

preg_match_all('#(?:(v=|/)([-a-z0-9]+))(/|/l:.*|\?\w+|&.*)?$#miu', $str, $out);
print_r($out);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)