使用正则表达式进行全字匹配

Inq*_*iot 6 c++ regex c++11

我想要一个 C++ 正则表达式,它匹配“bananas”或“pyjamas”,但不匹配“bananas2”、“bananaspajamas”或“banana”或基本上除了这两个单词之外的任何内容。所以我这样做了:

#include <regex>

int main(int argc, char** argv) {
  static const std::regex bp = std::regex("\bbananas\b|\bpajamas\b");
  printf("%d\n", std::regex_match("bananas", bp));
}
Run Code Online (Sandbox Code Playgroud)

除了打印0!是什么赋予了?/\bbananas\b|\bpajamas\b/.test('bananas')给我的true是 Javascript 那么 C++ 有什么不同呢?

Aho*_*sik 5

正则表达式字符串应该有\bbananas\b|\bpajamas\b. 但在 C++ 中,"\bbananas\b|\bpajamas\b"返回bbananasb|bpajamasb. 因此,你必须使用 extra\\like"\\bbananas\\b|\\bpajamas\\b"