LINUX.ORG.RU

знатокам PERL


0

0

Есть переменная которая содержит строчки:

$str = "qwerty\n".
       "asdfgh\n".
       "12dfdffgh\n".
       "asdfgh\n".
       "12ghtyhnbthnbasdfgh\n";

необходимо последовательно обойти все строчки в переменной $str и
найти все строчки начинающиеся с 12!

Пример из Perl Cookbook не работает:
print "$1\n" while($str =~ /^(12.*)$/m);

split не предлагать. Это просто пример чтобы понять как это делать.
Формат с которым вожусь гораздо сложнее.

Спасибо!!!

anonymous
Ответ на: комментарий от anonymous

2anonymous (*) (28.04.2006 11:11:18)
Спасибо, рабоатет...причем даже в таком варианте

print "$1\n" while($str =~ /^(12.*)$/gm);

Можно разъеснить зачем g, если уже m есть?
Еще раз спасибо!

anonymous
()
Ответ на: комментарий от anonymous

> Можно разъеснить зачем g, если уже m есть?

Если правильно помню, флаг g означает что нужно не останавливаться на первом совпадении, а найти максимальное количество подстрок, удовлетворяющих РВ.

slav ★★
()
Ответ на: комментарий от slav

При наличии g в match (m/.../ ), запоминается последняя позиция в строке поиска и на след. итерации цикла поиск продолжается с нее, а не начинается с начала строки.

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.