regex \ w似乎在re2上失败了

时间:2014-04-08 04:20:20

标签: c++ regex re2

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;
}

1 个答案:

答案 0 :(得分:1)

正如Johnny Mopp在评论中提到的那样,当你想要传递表达式\w时,你将文字\w传递给字符串。因此,您需要使用\\w来传递表达式。

事实上,在您自己关联的header中,示例在字符串中都有\\w