Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Supported Regular Expressions

Boost , Spirit 2.5.2 , Quick Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Table 11. Regular expressions support

Выражение

значение

<x>

Сопоставление любого персонажа<x>

<.>

Сопоставьте любой, кроме новой строки (или необязательнолюбойсимвол)

<"...">

Все символы, взятые как буквальные между двойными цитатами, за исключением последовательности побега

<[xyz]>

Класс персонажа; в этом случае соответствует<x>,<y>или<z>

.

<[abj-oZ]>

Класс персонажей с диапазоном в нем; соответствует<a>,<b>любой букве от<j>до<o>или<Z>

.

<[^A-Z]>

Отрицаемый класс символов, т.е. любой символ, кроме тех, что в классе. В этом случае любой символ, кроме заглавной буквы

<r*>

Нуль или больше r (жадность), где r - любое регулярное выражение

<r*?>

Ноль или больше r (абстемий), где r - любое регулярное выражение

<r+>

Один или несколько р (жадность)

<r+?>

Один или несколько r (абстемий)

<r?>

Ноль или один r (жадный), то есть факультативный

<r??>

Ноль или один r (абстемийный), то есть факультативный

<r{2,5}>

В любом месте между двумя и пятью р (жадность)

<r{2,5}?>

В любом месте между двумя и пятью р (абстемией)

<r{2,}>

Два или более р (жадность)

<r{2,}?>

Два или более r's

<r{4}>

Ровно четыре р

<{NAME}>

Макро<NAME>(см. ниже)

<"[xyz]\"foo">

Буквальная струна<[xyz]\"foo>

<\X>

Если X<a>,<b>,<e>,<n>,<r>,<f>,<t>,<v>, то ANSI-C интерпретация<\x>. В противном случае буквальный<X>(используется для побега операторов, таких как<*>)

<\0>

NUL символ (код ASCII 0)

<\123>

Характер с октальным значением 123

<\x2a>

Персонаж с шестнадцатеричным значением 2а

<\cX>

Именованный управляющий персонаж<X>

.

<\a>

Короткий путь для оповещения.

<\b>

Ярлык для Backspace

<\e>

Ярлык для ESC (побег<0x1b>)

<\n>

Ярлык для новой линии

<\r>

Ярлык для возврата перевозки

<\f>

Короткий путь для подачи формы<0x0c>

<\t>

Ярлык для горизонтальной вкладки<0x09>

<\v>

Ярлык для вертикальной вкладки<0x0b>

<\d>

Короткий путь<[0-9]>

<\D>

Короткий путь для<[^0-9]>

<\s>

Короткий путь<[\x20\t\n\r\f\v]>

<\S>

Короткий путь для<[^\x20\t\n\r\f\v]>

<\w>

Короткий путь для<[a-zA-Z0-9_]>

<\W>

Короткий путь для<[^a-zA-Z0-9_]>

<(r)>

Сопоставьте<r>; скобки используются для преодоления приоритета (см. ниже)

<(?r-s:pattern)>

применять опцию 'r' и опустить опцию 's' при интерпретации шаблона. Варианты могут быть равны нулю или больше символов «i» или «s». «i» означает нечувствительный к случаю. "-i" означает чувствительный к случаю. «s» изменяет значение синтаксиса «.», чтобы соответствовать любому отдельному символу. «-s» изменяет значение «.» в соответствии с любым персонажем, кроме «<\n

.

<rs>

Регулярное выражение<r>с последующим регулярным выражением<s>(последовательность)

<r|s>

Либо<r>, либо<s>

<^r>

<r>, но только в начале строки (т.е. только при начале сканирования или сразу после сканирования новой строки)

<r>$

<r>, но только в конце строки (т.е. непосредственно перед новой строкой)


[Note] Note

Классы символов POSIX в настоящее время не поддерживаются из-за проблем с производительностью при их создании в широком режиме символов.

[Tip] Tip

Если вы хотите создать токены для синтаксисов, которые распознают такие элементы, как котировки (<"'">,<'"'>) и обратная слэш (<\>), вот пример синтаксиса, чтобы вы начали. Урок здесь состоит в том, чтобы помнить, что и c++, и регулярные выражения требуют побега с<\>для некоторых конструкций, которые могут каскадироваться.

quote1         = "'";            // match single "'"
quote2         = "\\\"";         // match single '"'
literal_quote1 = "\\'";          // match backslash followed by single "'"
literal_quote2 = "\\\\\\\"";     // match backslash followed by single '"'
literal_backslash = "\\\\\\\\";  // match two backslashes

Regular Expression Precedence
  • <rs>имеет высший приоритет.
  • <r*>имеет следующий максимум<+>,<?>,<{n,m}>имеют тот же приоритет, что и<*>.
  • <r|s>имеет самый низкий приоритет.
Macros

Регулярным выражениям может быть дано имя и они упоминаются в правилах с использованием синтаксиса<{NAME}>, где<NAME>— это имя, которое вы дали макросу. Макроимя может быть не более 30 символов и должно начинаться с<_>или буквы. Последующие символы могут быть<_>,<->, буква или десятичная цифра.


PrevUpHomeNext

Статья Supported Regular Expressions раздела Spirit 2.5.2 Quick Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Quick Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 03:50:04/0.0070919990539551/1