О метасимволах

Конечно, если бы шаблоны могли совпадать только со строковыми литералами, пользы от них было бы немного. Специальные символы, называемые метасимволами, имеют особый смысл в регулярных выражениях. Например, точка (.) обозначает один произвольный символ, кроме символа новой строки (который представляется последовательностью "\n"). Таким образом, шаблон /bet.y/ совпадет с betty, а также с betsy, bet=y, bet.y и вообще любой строкой, которая начинается с bet, содержит любой один символ (кроме символа новой строки) с последующим символом y. Однако с bety или betsey он не совпадет, потому что t и y в этих строках не разделяются ровно одним символом. Точка всегда совпадает с одним символом, не более и не менее.

Итак, при поиске совпадения для литеральной точки в строке можно использовать точку. Но в этом случае совпадение будет найдено для любого возможного символа (кроме новой строки), а это может оказаться излишним. Если вы хотите, чтобы точка в шаблоне совпадала только с литеральной точкой, поставьте перед ней обратную косую черту. Собственно, это правило справедливо для всех метасимволов регулярных выражений Perl: обратная косая черта перед любым метасимволом отменяет его специальную интерпретацию. Таким образом, шаблон /3\.14159/ не содержит специальных символов. Итак, обратная косая черта – наш второй метасимвол. Если вам нужно включить в шаблон литеральный символ \, просто поставьте два таких символа подряд – это универсальное правило в Perl.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Альтернатива
Группировка в шаблонах
Инвертированные сокращения
Простые квантификаторы
Простые регулярные выражения

Вернуться в раздел: Perl / 6. В мире регулярных выражений