在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;
}
最佳答案
正如约翰尼·莫普(Johnny Mopp)在他的评论中提到的那样,当您可能要传递表达式\w
时,您正在将文字\w
传递给字符串。因此,您需要使用\\w
传递表达式。
实际上,在您自己链接的header中,所有示例的字符串中都带有\\w
。