Show/Hide Toolbars

Руководство администратора

Синтаксис регулярных выражений

Ссылки Назад Вверх Вперед

Синтаксис регулярных выражений крайне сложен и многообразен. В данном разделе приведены самые употребляемые метасимволы регулярных выражений с примерами их применения.

Большинство символов в регулярном выражении представляют сами себя за исключением специальных символов [ ] \ / ^ $ . | ? * + ( ) { }, которые могут быть предварены символом \ (обратная косая черта) ("экранированы", "защищены") для представления их самих в качестве символов текста. Можно экранировать целую последовательность символов, заключив её между \Q и \E.

Синтаксис

Представление

Эквивалент

Значение

\d

[0-9]

Цифра

\D

[^\d]

Любой символ, кроме цифры

\w

[a-zA-Z0-9_]

Символы, образующие «слово» (буквы, цифры и символ подчёркивания)

\W

[^\w]

Символы, не образующие «слово»

\s

[ \t\v\r\n\f]

Пробельный символ

\S

[^\s]

Непробельный символ

Символы для использования в регулярных выражениях

Символ

Описание

Примеры

.

Любой символ

".+" — любая ненулевая строка в кавычках

^

Начало строки

^[а-я] – абзац, начинающийся со строчной буквы

$

Конец строки

^$ — пустая строка

[ ]

Набор символов

0x[0a-c] – числа, начинающиеся с 0×0, 0xa, 0xb или 0xc

|

Альтернатива (ИЛИ)

рабоч(его|ее) — ищем "рабочего" или "рабочее"

( )

Выделение подвыражения

(рабоч)(его|ее) – два подвыражения

n

Использование подвыражения

(0x.., *)1 – два одинаковых байта рядом в массиве

*

0 и более раз

^.* — выделение строк (пустых и не пустых)

+ или

1 и более раз

^.+ — выделение непустых строк (абзацев)

? или {0,1}

0 или 1

мест[^ ]? — ищет "мест", "места", "место"…

"Не жадный" режим

0{2,4} в строке нолей найдёт "0000", а 0{2.4}? — "00"

{n}

Итератор "n раз"

0x[0-9a-f]{2}[^0-9a-f] – найдёт только байтовые числа

{n,}

Итератор "не менее n раз"

^.{40,} — абзацы, в которых не менее 40 символов

{n,m}

Итератор "не менее n, не более m"

<[:alpha:]{2,4}> — искать слова от 2 до 4 символов

xnn

Шестнадцатиричное значение

x20 – пробел

xnnnn

Шестнадцатиричное (Unicode)

x0410 – буква "А" русского алфавита

t

TAB

^t – найти строку, начинающуюся с TAB

n

NL


s или [ tnrf]

Разделитель

\s

S или [^ tnrf]

НЕ разделитель

\S

d или [0-9]

Цифра

\d — найти только цифры

D или [^0-9]

НЕ цифра

\D — найти НЕ цифры

w или [a-zA-Z0-9_]

Символ слова

\w

W или [^w]

НЕ символ слова

\W

b

Граница слова

\b

B

НЕ граница слова

\B

<

Начало слова

(< — найти круглую открывающую скобку в начале слова

>

Конец слова

[a-z_]+>[] — найти объявление массива

A

Начало текста

\A

Z

Конец текста

\Z

[:digit:]? или d

Цифра


[:space:]? или [ ]

Пробел


[:print:]?

Все печатаемые и пробелы


[:cntrl:]? или t

Непечатаемые (без пробелов)


[:alnum:]? или [a-zA-Z0-9]

Цифра или буква


[:alpha:]? или [a-zA-Z]

Буква


[:lower:]?

Буква в нижнем регистре


[:upper:]?

Буква в верхнем регистре


Для того, чтобы искать символ, совпадающий с метасимволом, его следует предварить обратной косой чертой — \ ^ +

Чтобы определить для поиска в перечне символ [ или ] , нужно поместить их в начало перечня, но лучше предварить косой чертой — []a-z] [a-z]]

Чтобы определить для поиска в перечне символ - , нужно поместить его в начало или конец перечня, но лучше предварить косой чертой

Символ | не работает в перечне, поэтому б[о|а]р найдёт "бор", "бар" или "б|р".

Символы для замены

n

Найденное выражение

Replace: /*2*/ — замена строкового на блочный

$n

Найденное выражение

Ещё один синтаксис подстановки подвыражения