Portál AbcLinuxu, 7. května 2025 00:56
již delší dobu se snažím vypořádat s regulárními výrazy v C++ pokud možno bez knihoven třetích stran (boost xpressive odzkoušen, ale pro mé potřeby příliš velké). Snažím se využít podpory TR1 přímo v gcc ale všechny mé snahy padají na Exception: throwing an instance of "std::regex_error" what(): regex_error.
regex section_regul("\\[([A-z0-9]+)\\]", regex_constants::extended);
regex value_regul("^([^\\=]+)\\=(.+)$", regex_constants::extended);
smatch match;
while(getline(*(this->fileHandler), line)){
line = this->trim(line);
if(regex_match(line, match, section_regul)){
cout << "SECTION: " << match[1] << endl;
}
else if(regex_match(line, match, value_regul)){
cout << "VALUE: " << match[1] << ":" << match[2] << endl;
}
else{
//piece of sh.t
}
}
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.