Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wyrażenia regularne - kłopot z licznikiem {Alpha}

Ostatnio zmodyfikowano 2020-02-05 22:27
Autor Wiadomość
idepozapalki
Temat założony przez niniejszego użytkownika
Wyrażenia regularne - kłopot z licznikiem {Alpha}
» 2020-02-05 22:02:20
Chciałem zrozumieć działanie wyrażeń regularnych. Na tapetę poszedł ten artykuł:

[C++] Wyrażenia regularne (C++11 / boost)
http://cpp0x.pl/artykuly/?id=47

Do testów użyłem pierwszy kod:

C/C++
#include <iostream>
#include <string>
#include <regex> //jeœli mamy standard C++0x
//#include <boost/regex.hpp> // jeœli nie mamy kompilatora zgodnego z standardem C++0x, musimy sami zainstalowaæ bibliotekê boost
//using namespace boost // jw.;narzêdzia biblioteki boost zmajduj¹ siê w przestrzeni nazw boost
using namespace std; // w C++0x narzêdzia z <regex> znajduj¹ siê w  std

int main()
{
    string tekst;
    regex wzorzec( " {Alpha}+ " ); //
   
    cout << "Pisz. Aby skonczyc wcisnij [Ctrl] + [z] w nowym wierszu\n";
    while( getline( cin, tekst ) )
    {
        smatch wynik; // tutaj bêdzie zapisany wynik
        if( regex_search( tekst, wynik, wzorzec ) )
             cout << "Linia : " << wynik[ 0 ] << '\n';
       
    }
    return 0;
}

Testowałem różne wzorce i działały jednak z tym mam kłopot.
Kod się kompiluje, ale nie daje się uruchomić, tzn daje ale uruchomienie powoduje Runtime to terimnate.

Co robię tu źle?
Chciałem użyć licznika do sprawdzenia jak praktycznie działa. Czy stworzyłem niepoprawny wzorzec ?
P-176175
DejaVu
» 2020-02-05 22:16:06
A debugger coś podpowiada?
P-176176
killjoy
» 2020-02-05 22:26:39
Wyrażenie regularne jest niepoprawne. Zresztą widać to w wyjątku, który jest rzucany:

terminate called after throwing an instance of 'std::regex_error'
  what():  Unexpected character in brace expression.
P-176177
DejaVu
» 2020-02-05 22:27:57
P-176178
« 1 »
  Strona 1 z 1