Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Bisyarin                       2:463/544.222  12 Nov 2006  19:41:26
 To : Artem Chuprina
 Subject : Regexp: модификатор m
 -------------------------------------------------------------------------------- 
 
 11 Nov 06 16:13, you wrote to me:
 
  AC> From: Artem Chuprina <ran+news@ran.pp.ru>
 
  AC> Artem Bisyarin -> All  @ Fri, 10 Nov 2006 22:51:04 +0300:
 
  AB>> Что-то я не пойму. Почитав документацию, сложилось впечатление,
  AB>> что при использовании модификатора m можно использовать ^ и $ в
  AB>> регулярном выражении сколько угодно раз (поскольку ^$ может
  AB>> находить совпадения в любой части строки). Hо вот это не
  AB>> работает:
 
  AB>> print
  AB>> "first_string\nsecond_string\n"=~/(^first_string$)(^second_string
  AB>> $)/m;
 
  AB>> То есть, я ожидал захвата сразу двух строк, но этого не
  AB>> происходит. Hо, если вместо первого $ поставить "\n" то
  AB>> работает. По видимому, я не правильно пользуюсь якорем $. Вопрос
  AB>> - как же его правильно использовать, чтоб в приведённом выше
  AB>> примере захватить сразу две строки, используя только ^$(без
  AB>> явного указания символов новой строки в регексп-е)?
 
  AC> Почти правильно.  Между парами скобок вставь .*.  У тебя нечем
  AC> поматчить \n, который между строками.  А если тебе важно, чтобы это
  AC> были именно соседние строки, то так на один \n и надо проверять.
 
 Я понял где меня заглючило. Мне на тот момент казалось, что при использовании
 модификатора "m" символы новой строки проигнорируются, а границы строк всё равно
 можно будет поматчить, но заблуждался. Вот это, в общем, самое то:
 
  "first_string\nsecond_string\n"=~/(^first_string$).*.(^second_string$)/sm;
 
 Спасибо за совет.
 
 Artem
 
 --- GoldED+/BSD 1.1.5
  * Origin:  ----> Default GoldED Origin <----  (2:463/544.222)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Regexp: модификатор m   Artem Bisyarin   10 Nov 2006 23:51:04 
 Re: Regexp: модификатор m   Artem Chuprina   11 Nov 2006 17:13:05 
 Regexp: модификатор m   Artem Bisyarin   12 Nov 2006 19:41:26 
Архивное /ru.perl/392545575638.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional