ファイルから引用符の間のコンテンツを取得しようとしていますが、正規表現を使用しています。これは私が使用している正規表現です:
id=\"([^\"]+)\"|title=\"([^\"]+)\"
ご覧のとおり、すべての特殊文字がエスケープされています。正規表現テスターでは完全に機能しますが、C++ コードで使用するとタイトルが見つかりません。IDは常に問題なく見つかります。いくつかのバリエーションを試してみましたが、その半分を削除しました (| の前)。
id="60973129" title="EPA"
これは私が使用しているC++コードです:
std::regex rgx("id=\"([^\"]+)\"|title=\"([^\"]+)\"");
std::smatch match;
if (std::regex_search(line, match, rgx)) {
for (int i=0; i < match.size(); ++i) {
std::cout << match[i];
}
}
編集:個別に配置すると動作することがわかりましたが、title=\"(.+?)\"
後で長い行をスキャンする必要があるため、いくつかの正規表現を使用する必要があり、目的が果たせません。