Флаг regex::ECMAScript
Флаг regex::ECMAScript задает грамматику регулярных выражений,
соответствующую стандарту ECMAScript (JavaScript). Этот флаг
устанавливается по умолчанию при создании объекта regex,
если не указан другой флаг грамматики. Он определяет синтаксис
для специальных символов, таких как '.', '*', '+',
'?', '^', '$', а также для группировки и классов символов.
Синтаксис
std::regex::ECMAScript
Пример
Давайте создадим регулярное выражение с флагом ECMAScript
и проверим, соответствует ли строка "abcde" шаблону,
который ищет последовательность из 3 строчных букв:
#include <iostream>
#include <regex>
using namespace std;
int main()
{
regex re("[a-z]{3}", regex::ECMAScript);
string str = "abcde";
if (regex_search(str, re))
{
cout << "Match found" << endl;
}
else
{
cout << "No match" << endl;
}
return 0;
}
Результат выполнения кода:
"Match found"
Пример
Давайте проверим, как флаг ECMAScript обрабатывает
специальный символ '^', обозначающий начало строки,
и символ '$', обозначающий конец строки:
#include <iostream>
#include <regex>
using namespace std;
int main()
{
regex re("^abc$", regex::ECMAScript);
string str = "abc";
if (regex_match(str, re))
{
cout << "Exact match" << endl;
}
else
{
cout << "Not exact match" << endl;
}
return 0;
}
Результат выполнения кода:
"Exact match"
Смотрите также
-
класс
regex,
который представляет регулярное выражение -
флаг
icase,
который делает поиск нечувствительным к регистру -
флаг
multiline,
который включает многострочный режим -
функция
regex_search,
которая ищет совпадения в строке