Forum Webscript.Ru

Программирование => Perl => Тема начата: tserbis от 15 Мая 2004, 11:18:26

Название: Экранирование $ и @ в символьных классах регулярных выражений Perl
Отправлено: tserbis от 15 Мая 2004, 11:18:26
От разбирающихся в особенностях регулярных выражений Perlа
необходима небольшая помощь,
связанная с ведущимся здесь http://forums.webscript.ru/showthread.php?threadid=13820
списком опечаток во втором издании книги Фридла "Регулярные выражения. Библиотека программиста".

На стр.96 автор пишет
"В символьном классе символ $ никак не может обозначать конец строки, поэтому в этой ситуации Perl считает его признаком интерполяции переменной, если только символ не экранируется. Экранированный символ $ просто считается обычным членом символьного класса. Именно это нам и нужно в данном примере, поэтому знак $ во второй части выражения для поиска URL экранируется".
и дальше идёт подобное же высказывание о префиксе имён массивов @.

Однако в примере, о котором идёт речь (его текст трижды встречается в книге - стр.94-95), в символьном классе ни $, ни @ нигде не экранируются.

Предположение: в регулярках - опечатки.

Вопрос: соответствует ли истине процитированное жирным (и такое же требование экранирования для @)?

Просьба к разбирающимся отвечать, даже если уже будут даны ответы, с которыми  вы согласны (хочется не одно, а пара-тройка подтверждающих высказываний :-).
Название: Экранирование $ и @ в символьных классах регулярных выражений Perl
Отправлено: ondr от 15 Мая 2004, 12:58:49
Всё верно по поводу экранирования (и к @ тоже).
Название: Экранирование $ и @ в символьных классах регулярных выражений Perl
Отправлено: tserbis от 19 Мая 2004, 18:19:29
ondr, спасибо.
Учтено.