imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 01.12.2004, 13:40     # 1
_ARMAGEDDON_
Guest
 
Сообщения: n/a

Регулярные выражения

Каким регулярным выражением выдрать ссылку со странички
<a href=http://yandex.com>yandex.com</a>

нужно получить http://yandex.com , еще нужно учесть если ссылка будет в кавычках..
 
Старый 01.12.2004, 13:50     # 2
Ghost
::VIP::
Звезда первого сезона
Молчун-2004
 
Аватар для Ghost
 
Регистрация: 24.08.2002
Сообщения: 1 575

Ghost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех ГуруGhost Отец (мать) всех Гуру
_ARMAGEDDON_
Если на перле и подразумевается, что линк не содержит пробелов, то вот:
Код:
$s =~ s/(.*)(<a)([^>]*)(href=)([^ >]*)(.*)/$5/i;
$s =~ s/"//g;
__________________
Действовать надо тупо и это лучшее доказательство нашей чистоты и силы!
Ghost вне форума  
Старый 01.12.2004, 14:36     # 3
_ARMAGEDDON_
Guest
 
Сообщения: n/a

на PHP
 
Старый 01.12.2004, 18:20     # 4
_ARMAGEDDON_
Guest
 
Сообщения: n/a

кое чего нашел <a\s+href=(\"|'|)([^\1]*?)\\1>
но если после ссылки идет class или target или еще чтонить то php захватывает все это с собой... что надо изменить в этом регулярном выражении?
 
Старый 01.12.2004, 19:44     # 5
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
#\<a[^\>]+\>(.*)</a>#i
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 02.12.2004, 11:08     # 6
_ARMAGEDDON_
Guest
 
Сообщения: n/a

$regvar="#\<a[^\>]+\>(.*)</a>#i";
preg_match_all("/".$regvar."/is",$result,$array);

Warning: Unknown modifier 'a' in .....mod\main.php on line 26
 
Старый 02.12.2004, 12:53     # 7
is_absent
::VIP::
 
Аватар для is_absent
 
Регистрация: 27.01.2004
Адрес: Россия. Барнаул
Пол: Male
Сообщения: 417

is_absent Молодецis_absent Молодецis_absent Молодец
$regvar="#\<a[^\>]+\>(.*)</a>#is";
preg_match_all($regvar,$result,$array);
вот так
__________________
Nunc est bibendum

Последний раз редактировалось is_absent; 02.12.2004 в 13:07.
is_absent вне форума  
Старый 02.12.2004, 14:21     # 8
_ARMAGEDDON_
Guest
 
Сообщения: n/a

всеравно не то...

$regvar="!<a.*?href=\"?'?([^ \"'>]+)\"?'?.*?>(.*?)</a>!is";
вот это почти то что надо... только названия ссылок тоже выбираются.. что тут изменить чтобы выдиралась токо сама ссылка?
 
Старый 02.12.2004, 15:07     # 9
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Цитата:
_ARMAGEDDON_:
всеравно не то...
Что именно не то? Поставленную задачу из первого поста решает, если нужно что-то другое - опиши конкретнее чего нужно.
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 02.12.2004, 15:23     # 10
_ARMAGEDDON_
Guest
 
Сообщения: n/a

нужно выдрать ссылку со странички (без названия)
последнее регулярное выражение почти справляется но за собой еще и название ссылки захватывает
а мне нужен только адрес

нужно еще учесть если ссылка в кавычках, если после ссылки идет class.. target и т.д.

#\<a[^\>]+\>(.*)</a>#i - c этой задачей не справляется
 
Старый 02.12.2004, 17:03     # 11
Hubbitus
мод
IMHO Кодер-200(6,7,8)
 
Регистрация: 29.03.2003
Адрес: Saint-Petersburg, Russia
Пол: Male
Сообщения: 2 734

Hubbitus Бог с наворотамиHubbitus Бог с наворотами
Hubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотамиHubbitus Бог с наворотами
Я просто не правильно прочитал что требуется, решил что именно текст ссылки нужно, , прошу прощения.

Тогда так:
#\<a.*?href=(?>[\"\'])?([^\s\>\'\"]+)(?>[\"\'])?.*>#i
__________________
Я делаю Линукс! Присоединяйтесь к свободным людям!

Связаться со мной всегда можно по джабберу: Hubbitus@jabber.ru
Pahan-Hubbitus.
Hubbitus вне форума  
Старый 02.12.2004, 17:12     # 12
_ARMAGEDDON_
Guest
 
Сообщения: n/a

спасибо! все работает
 

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 10:51.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.