regex \w, похоже, не работает на re2

В заголовке re2 написано

// C++ interface to the re2 regular-expression library.
// RE2 supports Perl-style regular expressions (with extensions like
// \d, \w, \s, ...).

Я заметил, что мой шаблон не работает, а затем \w, похоже, не работает. вот мой код Почему это не работает?

#include <re2/re2.h>
#include <iostream>

int main(){
    RE2::Arg s, i;
    std::string sz("a or b");
    RE2::Replace(&sz, "\w", "!");
    std::cout << sz << std::endl;
}

1 ответ

Решение

Как отметил в своем комментарии Джонни Мопп, вы передаете буквальное \w в строку, когда вы, вероятно, хотели передать выражение \w, Таким образом, вам нужно использовать \\w передать выражение.

На самом деле, в заголовке, который вы связали сами, все примеры имеют \\w в строках.

Другие вопросы по тегам