Использование Специальных Символов
Если при поиске требуется нечто большее, чем простое совпадение, например, найти один или более символов b или найти пробел, в патэрн включаются специальные символы. Например, патэрн /ab*c/ совпадает с любой комбинацией символов, в которой после одиночной 'a' идёт нуль или более символов 'b" (* означает 0 или более вхождений предшествующего элемента/символа) и сразу за ними - 'c'. В строке "cbbabbbbcdebc" этот патэрн совпадёт с подстрокой 'abbbbc'.
В следующей таблице дан полный список и и описание специальных символов, используемых в регулярных выражениях.
\ |
Одно из следующих:
- Для символов, которые обычно рассматриваются литерально, означает, что следующий символ является специальным и не должен интерпретироваться литерально.
Например, /b/ совпадает с символом 'b'. Поместив backslash перед b, то есть так: /\b/, мы делаем символ специальным, в данном случае - означающим границу слова.
- Для символов, которые обычно рассматриваются специально, означает, что следующий символ является литеральным и не должен интерпретироваться как специальный.
Например, * это специальный символ, означающий 0 или более вхождений предыдущего символа; например, /a*/ означает 0 или более 'a'. Чтобы подставит * литерально, ставим перед ним backslash; например, /a\*/ совпадает с 'a*'.
Соответствует началу ввода. Если многострочный флаг установлен в true, совпадает также сразу после символа разрыва строки.
Например, /^A/ не совпадает с 'A' в строке "an A", но совпадает с первым 'A' в строке "An A".
Совпадает с концом ввода. Если многострочный флаг установлен в true, совпадает также непосредственно перед символом разрыва строки.
Например, /t$/ не совпадает с 't' в строке "eater", но совпадает с в строке "eat".
*
Предшествующий символ совпадает 0 или более раз.
Например, /bo*/ совпадает с 'boooo' в строке "A ghost booooed" и с 'b' в "A bird warbled", но не совпадает ни с чем в строке "A goat grunted".
+
Например, /a+/ совпадает с 'a' в "candy" и со всеми 'a' в "caaaaaaandy".
?
Например, /e?le?/ совпадает с 'el' в "angel" и с 'le' в "angle."
Если используется сразу после квантификаторов *, +, ? или {}, делает квантификатор нежадным (совпадает минимальное число раз), что противоположно действию по умолчанию, когда квантификатор - жадный (совпадает максимальное число раз).
Используется также во вперёдсмотрящих/lookahead утверждениях, описанных в пунктах о x(?=y) и x(?!y) в этой таблице.
Например, /.n/ совпадает с 'an' и с 'on' в "nay, an apple is on the tree", но не с 'nay'.
Например, /(foo)/ совпадает с 'foo', и запоминает её, в "foo bar." Совпадающая подстрока может быть вызвана из элементов результирующего массива [1], ..., [n].
x(?!y)
x|y
Например, /green|red/ совпадает с 'green' в "green apple" и с 'red' в "red apple."
Например, /a{2}/ не совпадает с 'a' в "candy," но совпадает со всеми 'a' в "caandy" и с первыми двумя 'a's в "caaandy."
{n,}
Например, /a{2,} не совпадает с 'a' в "candy", но совпадает со всеми 'a' в "caandy" и в "caaaaaaandy."
Например, /a{1,3}/ не совпадает ни с чем в "cndy", совпадает с 'a' в "candy", с первыми двумя 'a' в "caandy" и с первыми тремя 'a' в "caaaaaaandy" Заметьте, что при совпадении с "caaaaaaandy", совпадёт "aaa", хотя оригинальная строка содержит большее количество 'a'.
[xyz]
Например, [abcd] это то же самое, что и [a-d]. Совпадает с 'b' в "brisket" и с 'c' в "ache".
Например, [^abc] это то же самое, что [^a-c]. Они совпадают с 'r' в "brisket" и с 'h' в "chop."
\b
Например, /\bn\w/ совпадает с 'no' в "noonday"; /\wy\b/ совпадает с 'ly' в "possibly yesterday."
Например, /\w\Bn/ совпадает с 'on' в "noonday", а /y\B\w/ совпадает с 'ye' в "possibly yesterday."
Например, /\cM/ совпадает с control-M в строке.
\d
Например, /\d/ или /[0-9]/ совпадает с '2' в "B2 is the suite number."
\D
Например, /\D/ или /[^0-9]/ совпадает с 'B' в "B2 is the suite number."
\f
\n
\r
\s
Например, /\s\w*/ совпадает с ' bar' в "foo bar."
\S
[ ^\f\n\r\t\v\u00A0\u2028\u2029].
Например, /\S\w*/ совпадает с 'foo' в "foo bar."
Например, /\w/ совпадает с 'a' в "apple," с '5' в "$5.28" и с '3' в "3D."
\W
Например, /\W/ или /[^$A-Za-z0-9_]/ совпадает с '%' в "50%."
\n
Например, /apple(,)\sorange\1/ совпадает с 'apple, orange,' в "apple, orange, cherry, peach."
\xhh
\uhhhh