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

 


Description

Специальные символы и шаблоны используются для написания шаблонов по регулярным выражениям.

Следующая табличка описывает символы, применяемые в регэкспах с короткими примерами.

Символ

Описание

\

Отмечает следующий символ как специальный./n/соответствует символу "n". Последовательность/\n/соответствует linefeed (хз что это) или символу новой строки.

^

Соответствует началу ввода или входящей строки.

$

Соответствует концу ввода или входящей строки.

*

Соответствует предшествующему символу 0 или более раз. /zo*/ соответствует как "z" так "zoo."

+

Соответствует предшествующему символу 1 или более раз. /zo*/ соответствует "zoo." но не "z"

?

Соответствует предшествующему символу 1 или 0 раз. /a?ve?/ соответствует "ve" в "never."

.

Соответствует любому символу, кроме символа новой строки.

(pattern)

Проверяет соответствие pattern и запоминает соответствие. Сравниваемая подстрока может быть получена из переменных %0-%9. Для сравнения с символами скобок ( ), применяйте "\(" или "\)".

x|y

Сответствует либо x либо y. /z|food?/ соответствуе "zoo" или "food."

{n}

nнеотрицательное целое. Соответствует точно n раз. /o{2}/ не соответствует "o" в "Bob," однако соответствует первым 2м o в "foooood."

{n,}

nнеотрицательное целое. Соответствует хотябы n раз. /o{2,}/ не соответствует "o" в "Bob," однако соответствует всем o в "foooood." /o{1,}/ эквивалентно /o+/.

{n,m}

m и n – неотрицательные целые. Соответствует хотябы n и не более m раз. /o{1,3}/ соответствует первым 3 o в "fooooood."

[xyz]

Набор символов. Соответствует любому из заключенным в скобки символов. /[abc]/ соответствует "a" в "plain."

[^xyz]

“отрицательный” набор символов. Соответствует любому не включенному в скобки символу. /[^abc]/ соответствует  "p" в "plain."

\b

Соответствует разделителю слов, такому как пробел. /ea*r\b/ соответствует "er" в "never early."

\B

Соответствует ээээээ несловесному (?!) nonword разделителю. /ea*r\B/ соответствует "ear" в "never early."

\d

Соответствует цифровому символу. Эквивалентно [0-9].

\D

Соответствует нецифровому символу. Эквивалентно [^0-9].

\f

Соответствует form-feed символу.

\n

Соответствует linefeed символу.

\r

Соответствует символу возврат каретки.

\s

Соответствует любому пустому пространству а-ля пробел, табуляция и тп. Эквивалентно [ \f\n\r\t\v]

\S

Соответствует любому непустому пространству. Эквивалентно [^ \f\n\r\t\v]

\t

Соответствует табуляции.

\v

Соответствует символу вертикальной табуляции.

\w

Соответствует любому (словесному?) символу, включая подчеркивание. Аналогично [A-Za-z0-9_].

\W

Соответствует любому (несловесному?) символу. Аналогично [^A-Za-z0-9_].

/n/

Соответствует  n, где n 8ное, 16ное, или десятичное значение ESC последовательности. Это возможность вставить  ASCII коды (цвета и тп) в регэкспы.


Пример:

/^You (massacres|hits|bruises|slashes|blugeons) (.+) (very hard|hard|extremly hard)*( with your slash)*/

Даст совпадения на строках: «You massacres dragon with your slash» «You blugeons dragon very hard» «You blugeons dragon hard» итп.