Regular Expression

Regular Expression

Regular Expression

Regular Expression (Регулярное выражение) необходимо для случаев, если необходимо выполнить:

  • Сравнение с шаблоном

  • Замену

  • Извлечение

Example

  • В тексте необходимо найти числа

  • В том числе отрицательные

-?[0123456789]+
-?[0-9]+
-?\\d+

Syntax

Классы символов

.

Любой символ

[abc]

Любой из указанных в скобках знаков a, b или c

[^abc]

Любой символ, кроме a, b или c

[a-zA-Z]

Любой символ латинского алфавита

[abc[hij]]

Любой из символов a,b,c,h,i,j

\s

Пробельный символ (пробел, перевод строки, табуляция и т.д.)

\S

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

\d

Цифра, то же самое, что [0-9]

\D

Не цифра, то же самое, что [^0-9]

\w

Буква, то же самое, что [a-zA-Z_0-9]

\W

Не буква [^\w]

Example

Agent 007
\w\w\w\w\w\s\d\d\d
Agent\s\d\d\d

Количество

X?

ни одного или один раз

X*

любое количество раз

X+

один или больше

X{n}

точно n раз (n - число)

X{n,}

n и больше раз

X{n,m}

n или больше, но не больше m

Example

Agent 007
Agent007
Agent 001
\w{5}\s?\d{3}

Символ "группы"

Java
Java Java
Java java
(Java)+
Java
Java Java
Java

Метасимвол | (OR)

Java
Java 8
Java 11
Java 5
(Java 8|Java 11|java)
Java 8
Java 11

Метасимвол | (OR)

Agent 001
Agent 010
Agent 008
Agent 00(1|2|3|4|5|6|7)
Agent 001

Обозначения границ

^

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

$

Конец строки

\b

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

\B

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

\G

Конец предыдущего соответствия

Example

Я разрабатываю Java
они пишут чисты код
Java 5 is old
^[а-яА-Я]+\s*\w*
Я разрабатываю Java
они пишут чисты код

Example

Agent 001
Agent 001 или 002
Agent 008
Agent 00(1|2|3|4|5|6|7)$
Agent 001

Example

stop
stoppable
unstoppable
\bstop\w+
stoppable

Example

123
002
Agent 007
\b[0-9]+\b
123
002

Example

ID_42
UID 42
042
\B[0-9]+
ID_42
UID 42

Особые знаки

Если в регулярные выражения надо вставить особые знаки, можно использовать специальные символы:

\xhh

Символ с шестнадцатеричным кодом 0xhh

\uhhhh

Символ Unicode с шестнадцатеричным кодом 0xhhhh

\t

Табуляция

\n

Новая строка

\r

Возврат каретки