![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
s_a_s_h_a |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
Здравствуйте, обитатели форума.
Подскажите, пожалуйста, как лучше решить следущую задачу. Есть html-страница. Есть какой-нибудь тег, например, <a href.... javascript...>. Надо получить два массива. В одном будут содержаться все присутствующие на странице теги <a href....>, а в другом все что находится между ними, чтобы после замены элементов в первом массиве, можно было собрать заново страницу. Либо получить один массив, нечетные элементы которого - это теги <a href....>, ну а четные - то что между <a href....>. Вопрос - как это лучше организовать? |
|||
|
||||
VaZa |
|
|||
Unregistered |
Этот код не работает если встречается в одной строке несколько совпадений, в таком случае сохраняется опоследнее совпадение
|
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: нет Всего: 39 |
Страный код.
s_a_s_h_a Нужны регекспы <? preg_match_all ('|<a(.*?)>(.*?)</a>|',$text,$out); print_r ($out); ?> Это сообщение отредактировал(а) Secandr - 3.11.2004, 14:03 |
|||
|
||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 4 Всего: 83 |
Secandr
Давайте всё-таки в форуме по Перлу и отвечать будем на Перле!!!! |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: нет Всего: 39 |
Прошу прощения стормозил, не посмотрел название раздела
![]() Впринципе регексп получается примерно такой же /<a(.*)>(.*)</a>/i только я не помню как отключить жадность, каокй модификатор это делает?
|
|||
|
||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 4 Всего: 83 |
Secandr
Не согласен!!! На твой регэксп будет ошибка!! Нужно "подсечь" слэш в закрывающемся тэге!!! Да и учитывая "жадность" регэкспов я бы переписал твой код вот так:
|
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: нет Всего: 39 |
модификатором можно ограничить жадность, а твой вариант не универсален:
|
|||
|
||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 4 Всего: 83 |
Согласен! А ты можешь предложить универсальный вариант? ![]() |
|||
|
||||
korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Причём здесь echo?
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: нет Всего: 39 |
GoodBoy Я же говорю, есть модификатор, который ограничивает жадность, только я его не помню.
|
|||
|
||||
korob2001 |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 13 Всего: 61 |
Вот он: ? Например так выражение перевернёт всю строку и зацепит только первую букву "o", это не жадный шаблон:
Для того, что бы он стал жадным, нужно удалить знак ? после знака +, то-есть слева первый вопросительный знак. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: нет Всего: 39 |
|
|||
|
||||
s_a_s_h_a |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
Всем спасибо за ответ.
Смотрю тема развивается. У меня возник вопрос - что есть `uptime`? |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: нет Всего: 39 |
|
|||
|
||||
GoodBoy |
|
|||
![]() Главный джедай ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3886 Регистрация: 8.1.2003 Где: КМВ Репутация: 4 Всего: 83 |
Secandr
echo - это не из Перла!!! ![]() |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: нет Всего: 39 |
Загребаю..... |
|||
|
||||
s_a_s_h_a |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
Снова здравствуйте.
Конечно, ничего из того что здесь написано толком не работает. Попытался сам чего-нибудь придумать, но что-то ничего не выходит. Решил вернуться к этой теме. Перечитал свой вопрос и заметил, что он немного не о том. Новый пример: text1 <tag1 list_param1> text2 <tag1 list_param2> text3 надо получить @mas1=(text1,text2,text3); @mas2=(list_param1,list_param2); Есть предложения, как это можно сделать? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl: CGI программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |