我想要一个 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++ 有什么不同呢?
正则表达式字符串应该有\bbananas\b|\bpajamas\b
. 但在 C++ 中,"\bbananas\b|\bpajamas\b"
返回bbananasb|bpajamasb
. 因此,你必须使用 extra\
和\
like"\\bbananas\\b|\\bpajamas\\b"
归档时间: |
|
查看次数: |
2979 次 |
最近记录: |