![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
tolik777 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 19.6.2006 Репутация: нет Всего: 2 |
Есть HTML:
Нужно найти совпадение в нем по 2-м тэгам: <form name="quick_find" action="http://domain.ru/advanced_search_result.php" method="get"> и <a href="http://domain.ru/index.php?cPath=28&ref=4" class="link_box">бла бла бла</a>. Если они есть, то регулярка должна срабатывать. Мой код:
Это сообщение отредактировал(а) tolik777 - 18.9.2006, 19:16 |
||||
|
|||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
что за странное отделение при помощи символов "|"?
|
|||
|
||||
jzZ |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 91 Регистрация: 17.7.2006 Репутация: нет Всего: 2 |
Насколько я знаю тут: form(\s*)
надо писать так form(\s)* корчое * за скобкой |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
кста,
означает не "только не </form", а "только не '<','\','f','o','r','m'", то есть закончится на первой же букве "f", "o", "r" или "m", которые встречаются ещё до ссылки Добавлено @ 18:59 как я понимаю, квантификатор повторения применяется либо к группе(при выделении в скобки), либо к последнему символу(или псевдосимволу, аки "\s"). |
|||
|
||||
tolik777 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 19.6.2006 Репутация: нет Всего: 2 |
А как тогда [^<\/form] правильно записать? Так [^(<\/form)] ?
Попробовал, все равно не рабоает.
Мне начало формы не нужно. Тут все работает. Мне надо идти от <form.......>, далее до закрывающего тэга формы </form> и между этими тэгами проверить есть ссылка <a href ......., и все что между этими тэгами находиться пропустить, т.е. проверку не делать, там может быть какой-угодно html код. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
давай ты скажешь, по каким признакам информацию собираешься искать, а? А то по твоей регулярке сильно не определишь, чего тебе надобно... то, что ищешь содержимое ссылки внутри формы это я понял. а подробнее? одна это ссылка или нет? по чём её определяешь(если не одна она такая)? по адресу? по классу?
|
|||
|
||||
tolik777 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 19.6.2006 Репутация: нет Всего: 2 |
Вообщем задача такая проверить, был ли установлена форма на определенной странице. Форма включает в себя форму поиска и снизу ссылки.
Чтобы всю форму не проверять, мне достаточно проверить: 1. <form name="quick_find" action="http://domain.ru/advanced_search_result.php" method="get"> 2. </form> 3. Внутри этой формы обязательно должна быть хотя бы одна ссылка <a href="http://domain.ru/index.php?cPath=28&ref=4" class="link_box">бла бла бла</a> Вот и все. Первый пункт я сделал, а вот дальше не могу сдвинуться. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
проверяем наличие в форме ссылки с классом link_box. |
|||
|
||||
tolik777 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 19.6.2006 Репутация: нет Всего: 2 |
В $test_link также 0. Не срабатывает. Добавлено @ 09:01 Все. Наконец разобрался. Вот так надо:
|
||||
|
|||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 8 Всего: 260 |
у меня - работает. но только когда нет переводов строки. видимо, там какой-то флаг должен быть...
Добавлено @ 09:20 угу. "." - это любой символ, кроме перевода строки. Добавлено @ 09:21 можно вместо "." сделать "(.|\n)" Добавлено @ 09:23 или можно использовать модификатор s, тогда "." будет соотвествовать любому символу, включая перевод строки. Добавлено @ 09:24 отлично. как-то сразу не заметил ![]() |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Тексты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |