私はパターン「"XYZ \ D \ D」と、このパターンが何回も発生する可能性があります『大きめ』の文字列を持っている。は、正規表現の検索を実行するとstdに交換してください::文字列
私の目的は、見つけることです。パターンのすべてのインスタンス文字列にし、元の文字列に「」文字でその試合ですべての文字を置換する
は、私がこれまで持っているが、エラーがあります以下:
#include <iostream>
#include <regex>
int main() {
std::regex exp("XYZ\\d\\d");
std::smatch res;
std::string str = " XYZ111 d-dxxxxxxx XYZ222 t-nyyyyyyyyy XYZ333 t-r ";
auto itr = str.cbegin();
while (std::regex_search(itr, str.cend(), res, exp)) {
std::cout << "[" << res[0] << "]" << std::endl;
for (auto j = res[0].first; j != res[0].second; ++j) {
*j = 'A'; // Error as dereferencing j causes a const reference
}
itr += res.position() + res.length();
}
std::cout << std::endl;
std::cout << "mod: " << str << std::endl;
return 0;
}
C++を使用しているときに正しいプロセスがわからない11 regex私の仕事を達成するための設備。
も思っていた1が、彼らはすべての試合が発生した上で試合を変更したいのですがどのように指定することができ数子を取るregex_replaceののようなものはありますか?
「XYZ」を検索して2桁の数字が続くかどうかを確認するのに約3行のコードしかかかりません。このような単純なマッチのために、正規表現を使用するのは残酷なようです。 –