Начало и конец строки в регулярках в C++
Существуют специальные символы, которые
обозначают начало '^' или конец
строки '$'. Посмотрим их
работу на примерах.
В данном примере шаблон поиска такой:
заменить 'aaa' на '!'
только, если оно стоит в начале строки:
std::string txt = "aaa aaa aaa"
std::regex re(R"(^aaa)");
std::string res = std::regex_replace(txt, re, "!");
std::cout << res << "\n";
Результат выполнения кода:
'! aaa aaa'
В данном примере шаблон поиска такой:
заменить 'aaa' на '!'
только, если оно стоит в конце строки:
std::string txt = "aaa aaa aaa"
std::regex re(R"(aaa$)");
std::string res = std::regex_replace(txt, re, "!");
std::cout << res << "\n";
Результат выполнения кода:
'aaa aaa !'
Когда в начале регулярки стоит '^',
а в конце - '$', то таким образом
проверяется вся строка целиком на соответствие
регулярке.
В следующем примере шаблон поиска такой:
буква 'a' повторяется один или
более раз, заменить всю строку на '!'
только она состоит из одних букв 'a':
std::string txt = "aaa"
std::regex re(R"(a+$)");
std::string res = std::regex_replace(txt, re, "!");
std::cout << res << "\n";
Результат выполнения кода:
'!'
Дана строка:
std::string txt = "abc def xyz"
Напишите регулярку, которая найдет первую подстроку из букв.
Дана строка:
std::string txt = "abc def xyz"
Напишите регулярку, которая найдет последнюю подстроку из букв.