Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Тексты > Проблема с preg_match |
Автор: tolik777 18.9.2006, 18:05 | ||||
Есть 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>. Если они есть, то регулярка должна срабатывать. Мой код:
|
Автор: skyboy 18.9.2006, 18:39 |
что за странное отделение при помощи символов "|"? |
Автор: jzZ 18.9.2006, 18:48 |
Насколько я знаю тут: form(\s*) надо писать так form(\s)* корчое * за скобкой |
Автор: skyboy 18.9.2006, 18:55 | ||
кста,
означает не "только не </form", а "только не '<','\','f','o','r','m'", то есть закончится на первой же букве "f", "o", "r" или "m", которые встречаются ещё до ссылки Добавлено @ 18:59 как я понимаю, квантификатор повторения применяется либо к группе(при выделении в скобки), либо к последнему символу(или псевдосимволу, аки "\s"). |
Автор: tolik777 18.9.2006, 19:22 | ||
А как тогда [^<\/form] правильно записать? Так [^(<\/form)] ? Попробовал, все равно не рабоает.
Мне начало формы не нужно. Тут все работает. Мне надо идти от <form.......>, далее до закрывающего тэга формы </form> и между этими тэгами проверить есть ссылка <a href ......., и все что между этими тэгами находиться пропустить, т.е. проверку не делать, там может быть какой-угодно html код. |
Автор: skyboy 18.9.2006, 19:39 |
давай ты скажешь, по каким признакам информацию собираешься искать, а? А то по твоей регулярке сильно не определишь, чего тебе надобно... то, что ищешь содержимое ссылки внутри формы это я понял. а подробнее? одна это ссылка или нет? по чём её определяешь(если не одна она такая)? по адресу? по классу? |
Автор: tolik777 19.9.2006, 07:52 |
Вообщем задача такая проверить, был ли установлена форма на определенной странице. Форма включает в себя форму поиска и снизу ссылки. Чтобы всю форму не проверять, мне достаточно проверить: 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 19.9.2006, 08:42 | ||
проверяем наличие в форме ссылки с классом link_box. |
Автор: tolik777 19.9.2006, 08:54 | ||||
В $test_link также 0. Не срабатывает. Добавлено @ 09:01 Все. Наконец разобрался. Вот так надо:
|
Автор: skyboy 19.9.2006, 09:19 |
у меня - работает. но только когда нет переводов строки. видимо, там какой-то флаг должен быть... Добавлено @ 09:20 угу. "." - это любой символ, кроме перевода строки. Добавлено @ 09:21 можно вместо "." сделать "(.|\n)" Добавлено @ 09:23 или можно использовать модификатор s, тогда "." будет соотвествовать любому символу, включая перевод строки. Добавлено @ 09:24 отлично. как-то сразу не заметил ![]() |