C++ регулярное выражение

169
02 января 2019, 01:20

Подскажите, почему код:

regex wrong("[a-z]{4,}");
string s="hYhghgZ";
if(regex_match(s, wrong)) cout << "wrong " << endl;
else cout << "ok";

выдает ok, хотя в строке hYhghgZ есть подходящий фрагмент "hghg"?

Answer 1

Это все потому, что regex_match() - ищет полное совпадение строк. Он не ищет шаблон в части строки. Для поиска подстроки используйте regex_search().

На cppreference честно пишут:

Note that regex_match will only successfully match a regular expression to an entire character sequence, whereas std::regex_search will successfully match subsequences.

READ ALSO
Программа русификатор (поиск)

Программа русификатор (поиск)

Подскажите программу с помощью которой можно русифицировать файлы (dll и

164
Статическая сборка QT 5.11.1

Статическая сборка QT 5.11.1

уже все примеры перепробовал, ну никак не получается, у меня есть QT 511

161
Почему в С++ const не static?

Почему в С++ const не static?

output: 0x7787a69678f0

181
Преобразование итератора в указатель

Преобразование итератора в указатель

Мне нужно в деке указателей найти указатель на элемент, переданный в функцию, и из одного дека этот указатель переместить в другой

167