まず、私の英語についてお詫び申し上げます。
私は小さな C++ プロジェクトで作業しており、それを小さく保ちたいと思っています。主な問題は、正規表現を使用する必要があることですが、必要な方法で機能しません。
これはうまくいきます:
std::string s ("subject");
std::regex e ("(sub)(.*)");
if (std::regex_match (s,e))
std::cout << "string object matched\n";
これもうまくいきます:
std::string s ("0");
std::regex e ("[0-9]", std::regex::extended);
if (std::regex_match (s,e))
std::cout << "string object matched\n";
std::regex::awk、basic、またはこのコードが機能しないもののために std::regex::extended を変更しても:
std::string s ("00");
std::regex e ("[0-9]{2}", std::regex::extended);
if (std::regex_match (s,e))
std::cout << "string object matched\n";
私は何か間違ったことをしていますか?
std::regex が完成していないことは知っていますが、このような単純な正規表現で機能するはずです。
とにかく、誰かが私に小さな正規表現ライブラリを教えてくれれば(ブーストしないでください)、感謝します。
追加情報
Linux Ubuntu 12.10 で作業しています。コンパイラは gcc > 4.7 です。
編集:
@jalf: コンパイルはしますが、最後の結果が間違っています。エラーが発生します。今日クライアントにいて、プログラムにアクセスできないため、結果を表示できません。
@KennyTM: はい、gcc/libstdc++ です。答えを探してこのフォーラムを読んでいます。繰り返しますが、ブーストは使用できません。
@Pete Becker: はい、gcc > 4.7 バージョンです。正確なバージョンを思い出せません。