Синтаксис регулярных выражений |
|
Специальные символы и шаблоны используются для написания шаблонов по регулярным выражениям.
Следующая табличка описывает символы, применяемые в регэкспах с короткими примерами.
Символ |
Описание |
\ |
Отмечает следующий символ как специальный./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» итп.