我想要一個匹配「香蕉」或「睡衣」但不是「香蕉2」或「香蕉」或「香蕉」或基本上除了那兩個確切兩個單詞之外的任何C++正則表達式。所以我這樣做:與regex.h全字匹配
#include <regex.h>
#include <stdio.h>
int main()
{
regex_t rexp;
int rv = regcomp(&rexp, "\\bbananas\\b|\\bpajamas\\b", REG_EXTENDED | REG_NOSUB);
if (rv != 0) {
printf("Abandon hope, all ye who enter here\n");
}
regmatch_t match;
int diditmatch = regexec(&rexp, "bananas", 1, &match, 0);
printf("%d %d\n", diditmatch, REG_NOMATCH);
}
並且它打印1 1
就好像沒有匹配一樣。發生了什麼?我也嘗試\bbananas\b|\bpajamas\b
爲我的正則表達式,也失敗了。
我問Whole-word matching using regex關於std :: regex,但std :: regex太糟糕了,所以我試圖regex.h。
我不明白爲什麼這會得到downvoted。這是一個小的,很好的,自我包含的編譯問題,只需最少的代碼即可解釋問題。此外,行政首長至少表面上看過文件。 **人們還想要什麼?** –
仇恨者會討厭 –
我也不明白。 *問題*並不差。 – Bathsheba