3

テキスト ファイルを解析するために boost::xpressive を使用しています。行が「#」(1 回以上) で始まる場合にのみ確認したい。

次のコードを使用しています

std::string str1 = "## this could be my line";
sregex rex1 = sregex::compile("^#+");
smatch result1;
if(regex_match(str1,result1,rex1){
    std::cout << result1[0] << '\n';
}else{
std::cout << "match not found!\n";
}

しかし、行が # で始まる場合でも、常に「一致が見つかりません!」というメッセージが表示されます。誰でもここで私を助けることができますか?

ちなみに、boost::xpressive 'bos' を使用して rex1 ステートメントを書くのを手伝ってくれる人はいますか?

ありがとう!アイーシャ

4

1 に答える 1

3

regex_searchの代わりに使用しregex_matchます。

の静的 xpressive 構文は次のとおりですrex1

bos >> +as_xpr('#');
于 2012-04-11T21:16:11.803 に答える