Так как в Проекте используется разборщик регулярных выражений из библиотеки BOOST, то здесь приводится краткий (ряд элементов не описан) перевод описания синтаксиса из документации Boost.regex. Оригинал можно прочитать здесь.
Литералами являются любые символы, исключая: ".", "|", "*", "?", "+", "(", ")", "{", "}", "[", "]", "^", "$" и "\". Эти символы становятся литералами в том случае, когда перед ними стоит символ "\". Литерал - это символ, который соответствует самому себе.
Точка является метасимволом и соответствует любому символу (или отсутствию символа). Таким образом, строка "abc.ef" соответствует и "abcef", и "abcdef".
Это выражения, которые повторяются некоторое количество раз в тексте. Для задания повторов применяются символы:
Звездочка * повторение любое число раз, включая 0.
Плюс + повторение любое число раз, но не менее 1.
Вопрос ? повтор 0 или 1 раз.
Фигурные скобки {n,m} повтор не менее n и не более m раз.
Примеры:
"ba*" соответствует "b", "ba", "baa" и так далее.
"ba+" соответствует "ba", "baa" и так далее.
"ba?" соответствует "b" или "ba".
"ba{2,4}" соответствует "baa", "baaa" или "baaaa".
Альтернатива возникает, когда выражение соответствует либо одному подвыражению, либо другому. Альтернативы разделяются символом "|".
Пример:
"a(b|c)" соответствует "ab" или "ac"
"abc|def" соответствует "abc" или "def"
Это группы символов, которые соответствуют любому одиночному символу, который принадлежит множеству. Множества ограничиваются символами [ и ] и содержат литералы или диапазоны символов. Символ "^" сразу после [ образует дополнение множества (то есть любые символы не из множества).
Примеры:
"[abc]" соответствует "a", либо "b", либо "c".
"[^abc]" соответствует любому символу, кроме "a", "b" и "c".
"[a-z]" соответствует символам из диапазона от "a" до "z".
"[^A-Z]" соответствует любым символам, кроме входящих в диапазон от "A" до "Z".
Есть предопределенные множества символов, на которые ссылаются особым образом:
[:alnum:] - буквы и цифры
[:alpha:] - буквы
[:blank:] - пробельные символы (сам пробел или символ табуляции).
[:digit:] - цифры
[:lower:] - буквы в нижнем регистре
[:punct:] - пунктуатор
[:space:] - невидимые символы
[:upper:] - буквы в верхнем регистре
[:xdigit:] - шестнадцатеричный символ (0-9,A,B,C,D,E,F).
[:word:] - все буквы, цифры и символ подчеркивания.
Для удобства можно использовать сокращения для множеств:
\w вместо [[:word:]]
\s вместо [[:space:]]
\d вместо [[:digit:]]
\l вместо [[:lower:]]
\u вместо [[:upper:]]
\W вместо [^[:word:]]
\S вместо [^[:space:]]
\D вместо [^[:digit:]]
\L вместо [^[:lower:]]
\U вместо [^[:upper:]]
© Козиев Илья 2019
![]() |
|
изменено 16-Aug-11 |