2016-04-25 10 views
1

regex_searchは「コンピュータコンピュータ」で「TER」に一致していない部分文字列に一致しない -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を与え、明らかに「TERは」であり、一方、件名。それでは、ここで何が起こっているのですか?私は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コンパイラをお持ちの場合、[標準ライブラリは動作していません( ' ://stackoverflow.com/q/12530406/819272)gcc 4.9以降にアップグレード – TemplateRex

+0

はい、GCC 5.3でCygwinをインストールしただけですべてがうまくいきます。 –

関連する問題