Автор Тема: Экранирование $ и @ в символьных классах регулярных выражений Perl  (Прочитано 5849 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
От разбирающихся в особенностях регулярных выражений Perlа
необходима небольшая помощь,
связанная с ведущимся здесь http://forums.webscript.ru/showthread.php?threadid=13820
списком опечаток во втором издании книги Фридла "Регулярные выражения. Библиотека программиста".

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

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

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

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

Просьба к разбирающимся отвечать, даже если уже будут даны ответы, с которыми  вы согласны (хочется не одно, а пара-тройка подтверждающих высказываний :-).

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Всё верно по поводу экранирования (и к @ тоже).
0 OK, 0:1

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
ondr, спасибо.
Учтено.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28