Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите составить регекс 
:(
    Опции темы
DooZ
Дата 3.10.2007, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



задача следующая
есть переменная с контентом (страница)
надо в ней удалить все кроме: <a href=...> вот и все =)

$content =~ s/[^<a.*?href[^>]*>]//igs; не пашет
попробывал вот такое:
$content =~ s/<(?!a.*?href)[^>]*>/ /igs;
вроде все удаляет, но оставляет текст (т.е. удаляет все что между <>)
если его изменить на:
$content =~ s/(?!<a.*?href[^>]*>)/ /igs;
не пашет

помогите плиз составить короткий и быстрый регекс =)
заранее сенькс!

З.Ы. чет вроде простой регекс, а справиться не могу (закипаю уже) smile


Это сообщение отредактировал(а) DooZ - 3.10.2007, 19:04
PM MAIL   Вверх
amg
Дата 4.10.2007, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



DooZ, эту задачу точно в твоей формулировке (удалить всё кроме <a href=...>) решить можно, но короткий и быстрый регексп не получится. Гораздо проще решить другую задачу (приводящую к тому же результату): найти все подстроки <a href=...> и поместить их на место исходной строки.
Варианты:
Код

# Все найденные подстроки поместить в массив
@href = $content =~ /<a.*?href[^>]*>/igs;
$content = "@href";
# Обрабатывать очередную подстроку по мере нахождения
$href .= $1 while $content =~ /(<a.*?href[^>]*>)/igs;
$content = $href;
# Найти 1-ю подстроку и преписать ею исходную строку
($content) = $content =~ /<a.*?href[^>]*>/is;


PM MAIL   Вверх
DooZ
Дата 4.10.2007, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 25.11.2005

Репутация: нет
Всего: 1



2amg этот вариант понятное дело проще, я его собственно и использую
мне было интересно посмотреть регекс именно удаляющий =)

тем немения спасибо за помощь =)

З.Ы. вопрос остается открытым
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0756 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.