RegularExpression



  • In C# habe ich eine "RegularExpression" definiert.
    System.Text.RegularExpressions.Regex rex = new System.Text.RegularExpressions.Regex("^AF0[0-9]{5}_[0-9]{8}");

    Gibt es so etwas auch in C++. Wenn ja, welche Klasse ist das und gibt es ein kleines Code-Beispiel?



  • Ja gibt es du benötigt dafür aber "BOOST"!

    http://www.boost.org/doc/libs/1_44_0/libs/regex/doc/html/index.html

    http://www.boost.org/

    Ist wohl auch schon TR1... ich programmiere zu wenig merke ich gerade 😞

    http://www.johndcook.com/cpp_regex.html



  • HighLigerBiMBam schrieb:

    Ja gibt es du benötigt dafür aber "BOOST"!

    Auch wenn ich auch die boost-Bibliothek genannt hätte, würde ich nicht allgemein boost als zwingend benennen ;p. Es gibt mehrere RegEx-Bibliotheken für C++. Nur das Boost allgemein ohnehin recht gebräuchlich ist...



  • asc schrieb:

    HighLigerBiMBam schrieb:

    Ja gibt es du benötigt dafür aber "BOOST"!

    Auch wenn ich auch die boost-Bibliothek genannt hätte, würde ich nicht allgemein boost als zwingend benennen ;p. Es gibt mehrere RegEx-Bibliotheken für C++. Nur das Boost allgemein ohnehin recht gebräuchlich ist...

    Dann gib ihm zusätzlich andere Vorschläge 🙂



  • HighLigerBiMBam schrieb:

    asc schrieb:

    HighLigerBiMBam schrieb:

    Ja gibt es du benötigt dafür aber "BOOST"!

    Auch wenn ich auch die boost-Bibliothek genannt hätte, würde ich nicht allgemein boost als zwingend benennen ;p. Es gibt mehrere RegEx-Bibliotheken für C++. Nur das Boost allgemein ohnehin recht gebräuchlich ist...

    Dann gib ihm zusätzlich andere Vorschläge 🙂

    Ich verwende für GUI und Konsolenprogramme viel wxWidgets:

    wxString Mainframe::DoRegExOnString( wxString& text )
    {	
    	wxRegEx RegEx("<img src=[^>]*>");
    
    	if ( RegEx.Matches(text) )
    	{
    		wxString result = wxEmptyString;	
    		int count = RegEx.GetMatchCount();
    		for ( int i = 0; i < count; i ++ )
    		{
    			wxString raw = RegEx.GetMatch(text, i);
    
    			// Get the path
    			int start = raw.find_first_of('=') + 1;
    			int end = raw.find_last_of('>') - 1;
    			wxString file = raw.SubString(start, end);
    
    			// Extract iconnumber
    			wxString new_file = file.SubString(file.find_last_of('/')+1, file.find_last_of('.') - 1);
    			new_file.Prepend("rdb://");
    			text.Replace(file, new_file);
    			return text;
    		}
    	}
    	return wxEmptyString;
    }
    


  • HighLigerBiMBam schrieb:

    Dann gib ihm zusätzlich andere Vorschläge 🙂

    Ich kritisiere nur das "du benötigt dafür aber", nicht die Nennung als solches (Eine unvollständige Liste von verfügbaren Bibliotheken für C++ gibt es unter anderem hier, wobei ich unter anderem Boost vermisse ;p).



  • lol die Listen wurden sicher seit Jahren nichtmehr aktualisiert.



  • Vielen Dank an alle für alles!


Anmelden zum Antworten