2016-04-25 53 views
1

regex_search不匹配「計算機計算機」「之三」 -regex_search c + +不匹配字符串時我用下面的代碼

#include <iostream> 
#include <regex> 

using namespace std; 

int main() { 
    string str("Computer Computer"); 
    cout << regex_search(str, regex("ter")); 
    return 0; 
} 

上面的代碼給我0,而有明顯的「之三」中主題。那麼這裏發生了什麼。我知道PHP的正則表達式匹配子字符串很好,但這裏有什麼錯?

我正在使用C++ 11 GCC,這是一個問題,因爲我讀了一個地方,它對正則表達式的支持很差。

+0

你使用什麼頭文件? –

+0

我在CodeBlocks中使用了您的確切代碼,它給了我0,這意味着這裏有一個編譯器問題。 –

+0

你確定你的編譯器設置爲使用gcc-11 ..我給出的鏈接是用於C++ 14 ..我也得到0 – rock321987

回答

1

它重新運行1個類型布爾,它表示在單詞中找到模式匹配。運行該程序。

#include <stdio.h> 
#include<iostream> 
#include <regex> 
using namespace std; 
int main(void) { 
    cout << regex_search(string("Computer Computer"), regex("ter"));//1 
    cout << regex_search(string("Computer Computer"), regex("tesdsr"));//0 
    return 0; 
} 
+0

關閉,但沒有雪茄,仍然00. :( –

+0

@DivyaMamgai這個程序是正確的,但如果你有與4.8版或更早版本的gcc編譯器,那麼[其標準庫不提供工作''執行](http ://stackoverflow.com/q/12530406/819272)。升級到gcc 4.9或更高版本。 – TemplateRex

+0

是的,剛剛安裝了Cygwin和GCC 5.3,一切都很好。 –