Die std::regex_match()
endet nicht (GCC 5.4.0 20160609, x86_64, Ubuntu 16.04).Std :: Regex Endlosschleife mit gcc 5.4
Aber es funktioniert in einigen der Online-Compiler: http://cpp.sh/ ist in Ordnung, zum Beispiel.
Der Code versucht, eine INI-artige Abschnittsüberschrift mit einem möglichen "#" - Kommentar zu vergleichen.
#include <regex>
int main(int argc, char *argv[])
{
std::regex headerPattern("([[:blank:]]*\\[[[:blank:]]*((?:[[:blank:]]*[^[:space:]]+[[:blank:]]*?)+)[[:blank:]]*\\][[:blank:]]*(?:#(?:[^[:space:]]*[[:blank:]]*)*)?)");
std::smatch headerMatch;
std::string l("[Hdr 100] # ------------ 22 22 4444 88888888 333");
return std::regex_match(l, headerMatch, headerPattern) ? 0 : 1;
}
Körperbau:
g++ -std=c++11 main.cpp -o main
Gibt es wirklich ein Problem mit dem Code?