![]() |
|
Модераторы: ginnie |
![]()
|
|
| dron000 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
После поиска очередной строки осуществляю вывод,во втором и в третьем случае выводится первое значение.
Как это обойти?
|
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 1 Всего: 31 |
В каком смысле первое ?
все операторы print печатают одно и то же ? |
|||
|
||||
| dron000 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
В данном случае да.
|
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 1 Всего: 31 |
странно - у меня все работает адекватно.
[nuf@nuftop /usr/home/nuf/study]$ perl 1.pl str='01234567898 p3 33344455577 p2gggg=ggg55566677722 222233334444' matched='222233334444' str='01234567898 p3 33344455577 55566677722 222233334444' matched='55566677722' str='01234567898 33344455577 55566677722 222233334444' matched='33344455577' Может это особенность ваших входных данных ? |
|||
|
||||
| dron000 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
Проверял в разных вариациях, почлучается что если мы нашли комбинацию то в следующих выводах выводится она же, если нашли новую то далее в выводах идет уже она. p1,p2,p3 у меня разные и частями друг друга не являются, в этом смысле повтор исключен.
Добавлено через 13 минут и 26 секунд Такое происходит только тогда когда например для p1 найдено а для p2 нет(тогда на выводе для p2, $1 ,будет такой же как для p1 пока не будет найдено новое Pn ),можно ли $1 как-то очищать?(потому как не для каждого p находится последовательность удовлетворяющая шаблону) |
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: нет Всего: 50 |
Вы совершенно верно подметили, $1 не ресетится после "неудачного" регулярного выражения. Хорошо это или плохо -- вопрос, но так оно есть. Просто нужно привыкнуть всегда писать так:
|
|||
|
||||
| dron000 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 159 Регистрация: 20.9.2006 Репутация: нет Всего: нет |
СПАСИБО!!!Работает.
|
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: нет Всего: 18 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Регулярные выражения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |