#include #include #include int main(int argc, char* argv[]) { try { std::string in, line; std::ifstream f("c:\\input.txt"); while (getline(f, line)) in += line + '\n'; std::string exprStr("(\\w+\\()((?!System)*)System\\.Data\\.DataSet (\\w+)([,)].*)\\3([,}].*)Begin\\1\\2System\\.Data\\.DataSet \\3([,)].*)\\3([,}].*)End\\1"); std::string replStr("$1$2System.Data.DataSet $3$4Helper.ConvertFromDateTime\\($3.Copy\\(\\)\\)$5Begin$1$2System.Data.DataSet $3$6Helper.ConvertFromDateTime\\($3.Copy\\(\\)\\)$7End$1"); boost::regex expr(exprStr, boost::regbase::normal | boost::regbase::icase); std::string out(boost::regex_merge(in, expr, replStr)); std::ofstream fout("c:\\output.txt"); fout << out; } catch (const std::exception& e) { printf("%s", e.what()); } return 0; }