私は正規表現をC++で作成しようとしていますが、コンパイルエラーが発生しています。私はウェブを見渡しましたが、その答えは見つかりませんでした。GNUプロジェクトCおよびC++コンパイラを使用したC++の正規表現
私のような例を貼り付けコピーしています:
#include <iostream>
#include <tr1/regex> //<regex> didn't compile
#include <string>
using namespace std;
int main(int argc, char **argv) {
string str = "127.0.0.1";
std::tr1::regex rx("127.0.0.1");
regex_match(str.begin(), str.end(), rx);
return 0;
}
私はこの構文は、Windowsで使用されて見たものから
/tmp/cc0zldN2.o: In function std::tr1::basic_regex<char, std::tr1::regex_traits<char> >::basic_regex(char const*, unsigned int)':.... undefined reference to std::tr1::basic_regex<char, std::tr1::regex_traits<char> >::_M_compile()...
を取得しています。私はGNUプロジェクトのCとC++コンパイラでlinuxを使っています。 誰も私のコンパイラと一致するregexの例への参照を持っていますか?
ありがとうございました!
「.......」は*重要な部分です*。完全なエラーメッセージを表示しないでください。 – Puppy
例について。文字列を比較するか、IPを実際に解析する必要がありますか?あなたが実装しようとしたやり方では、単に '.'だけでなく、あらゆる文字にマッチする' .'があるため、純粋なIPよりも多くのものにマッチします。 '.'のみにマッチさせたい場合は、それをエスケープしてください(' \ .')。 – Mario
gcc 4.7で正常に動作します(std :: regexを使用します:) –