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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Dmitry Smolin                        2:5020/949     28 Sep 2002  03:10:30
 To : All
 Subject : Литерал в регекспе
 -------------------------------------------------------------------------------- 
 
  Once, 27 Sep 2002 19:56, Andrey Sapozhnikov wrote to Dmitry Smolin:
 
  DS>>> Как конец строки $ понимается только в конце регекса.
  AC>> Hе только. Чай, не греп.
  DS>> Hу хорошо, только в "возможном" конце регекса. :)  (что-нибудь вроде
  DS>> /\d+$|\w+\s+\d+/) Или есть еще какие-то случаи, в которых $
  DS>> понимается как конец строки, не находясь при этом в конце выражения?
  AS> Мало того, "концов" может быть много. См. опцию m для регулярных
  AS> выражений в perldoc perlop.
 
 Hет, ну что вы (Андрей, Артем, Юрий) прям, в один голос. :)  Знаю я про /m,
 знаю. Только ведь другое это совсем. /m разрешает совпадение ^|$ с
 началом|концом строки в любом месте скаляра (если там есть перевод строки) а не 
 только в его начале или конце.
 
 Пример:
 
 my $str = <<'EOL';
 123
 456
 789
 EOL
 
 $str =~ /(\d+)$/;         # совпадение - 789
 $str =~ /(\d+)$/m;        # совпадение - 123
 $str =~ /(\d+)$(\d+)/m;   # совпадения _не будет_
 $str =~ /(\d+)$^(\d+)/m;  # и так - тоже не будет
 Впрочем, еще один пример (помимо конструкции выбора) я таки придумал:
 $str =~ /(\d+)$(?=\n\d)/m;
 
 Я где-то не прав?
  Take care.
 
 --- skanking to the rhythm of the music by my side
  * Origin: Play your skank music - yeah, play it all night (2:5020/949)
 
 

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

 Тема:    Автор:    Дата:  
 Re: Литерал в регекспе   Andrey Sapozhnikov   27 Sep 2002 19:56:32 
 Литерал в регекспе   Dmitry Smolin   28 Sep 2002 03:10:30 
Архивное /ru.perl/208523d94e967.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional