Регулярное выражение от <form...> до первого </form>, не могу составить |
Здравствуйте, гость ( Вход | Регистрация )
Регулярное выражение от <form...> до первого </form>, не могу составить |
ViGOur |
13.8.2008, 16:26
Сообщение
#1
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Есть HTML документ, в нем есть две формы (form). Мне нужно получить все, что внутри первого form, пишу выражение:
но почему-то получаю данные до второго </form>, а не до первого.Как нужно составить регулярное выражение, чтобы получить данные только из первой формы. |
|
|
Tonal |
14.8.2008, 8:06
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
но почему-то получаю данные до второго </form>, а не до первого.Поставь ? после * Это сделает повторитель "не жадным". "Жадный" повторитель захватывает сразу всё сколько может, а потом отдаёт если остаток выражения не совпадает. "Нежадный" наоборот, после захвата минимально возможного количества символов, отдаёт управление дальше, и если совпадений там нет, кушает следующий доступный. P.S. Кстати, изменение не проканают - у тебя между тегами form стоит ([^<>]*) - т.е. взять любую последовательность символов в которой не встречаются символы <> - т.е. при встрече первого же тега (а это скорее всего будет не </form> оно остановиться. И выражение обломается. Так что тебе нужно его заменить (как правильно написал Andrew Selivanov) на такое: (.+?) Сообщение отредактировал Tonal - 14.8.2008, 8:17 |
|
|
Текстовая версия | Сейчас: 24.11.2024, 23:22 |