私の正規表現が機能しなくなっています。私は文字列からURLをエクスポートしようとしています。文字列内にあるテキストの一部を取り出します。 pastebin.com/wA9N1Gbi。私はHistorik.exeで0x7638DAE8でエラー「未処理の例外次取得コンパイルする場合Imは使用しようとしていることを正規表現式は正規表現が有効になっていません
(?< protocol>https?:\/\/)(?:(?< urlroot>[^\/?#\n\s]+))?(?< urlResource>[^?#\n\s]+)?(?< queryString>\?(?:[^#\n\s]*))?(?:#(?< fragment>[^\n\s]))?
Here'saリンクregex101.com/r/bH1eS9/3
、残念ながら機能していません:マイクロソフトC++例外:メモリ位置0x0018ED9Cのstd :: regex_error。 "。どのように私はそれを行うことができる別のアイデアを誰かが持っていますか?このタスクに適している別の正規表現関数がありますか?
この時点でコーディングしています。前もって感謝します。
string str;
std::ifstream in("c:/Users/Petrus/Documents/History", std::ios::binary);
std::stringstream buffer;
buffer << in.rdbuf();
std::string contents(buffer.str())
unsigned counter = 0;
std::regex word_regex(
R"((?<protocol>https?:\/\/)(?:(?<urlroot>[^\/?#\n\s]+))?(?<urlResource>[^?#\n\s]+)?(?<queryString>\?(?:[^#\n\s]*))?(?:#(?<fragment>[^\n\s]))?)",
std::regex::extended
);
auto words_begin = std::sregex_iterator(contents.begin(), contents.end(), word_regex);
auto words_end = std::sregex_iterator();
for (std::sregex_iterator i = words_begin; i != words_end; ++i) {
std::smatch match = *i;
std::string match_str = match.str();
for (const auto& res : match) {
counter++;
std::cout << counter++ << ": " << res << std::endl;
}
それはまさにunfortunately._作業_Notだ方法について詳しく説明してください!それは非常に曖昧な質問です。 [MCVE]を提供する。 –