Portál AbcLinuxu, 7. května 2025 00:56

Dotaz: Regex TR1 Exception: regex_error

27.1.2012 20:09 D3mon
Regex TR1 Exception: regex_error
Přečteno: 169×
Odpovědět | Admin
Zdravím vespolek,

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
        }
    }
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.1.2012 20:15 D3mon
Rozbalit Rozbalit vše Re: Regex TR1 Exception: regex_error
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ještě doplním, že regulární výrazy by měly parsovat dokument defacto ve stylu ini souboru a že výjimka se vyhodí při sestavování těch regexů.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.