在re2 header中说
// 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;
}
答案 0 :(得分:1)
正如Johnny Mopp在评论中提到的那样,当你想要传递表达式\w
时,你将文字\w
传递给字符串。因此,您需要使用\\w
来传递表达式。
事实上,在您自己关联的header中,示例在字符串中都有\\w
。