Verfügt C oder C++ über eine Standard-Regex-Bibliothek?

Lesezeit: 2 Minuten

Macht es? Wenn ja, wo bekomme ich die Dokumentation dazu… wenn nein, was wäre dann die beste Alternative?

  • Beinahe-Duplikate: stackoverflow.com/questions/181624, stackoverflow.com/questions/923500 und stackoverflow.com/questions/815429.

    – Peter Mortensen

    14. September 2009 um 10:31 Uhr

  • stackoverflow.com/questions/329517/…

    – dmckee — Ex-Moderator-Kätzchen

    14. September 2009 um 21:15 Uhr

  • Übrigens: Sie hätten schneller und einfacher eine Fülle von Informationen erhalten können, indem Sie gesucht haben: stackoverflow.com/search?q=c+c%2B%2B+regex+standard

    – dmckee — Ex-Moderator-Kätzchen

    14. September 2009 um 21:17 Uhr

Benutzer-Avatar
Joris Timmermans

C++11 hat jetzt endlich eine Standard-Regex-Bibliothek – std::regex.

Wenn Sie keinen Zugriff auf eine C++11-Implementierung haben, könnte eine gute Alternative sein Regex steigern. Es ist nicht vollständig äquivalent zu std::regex (z. B. ist die Methode “empty()” nicht in std::regex enthalten), aber es ist nichtsdestotrotz eine sehr ausgereifte Regex-Implementierung für C++.

  • Diese Antwort ist veraltet, ab 2012 lautet die Antwort jetzt Ja, C ++ hat eine von C ++ 11 vorgeschriebene Standard-Regex-Bibliothek unter der Überschrift „Regex“.

    – Anne Quinn

    3. August 2012 um 1:39 Uhr

  • @Clairvoire – Ich habe beschlossen, meine Antwort auf die Änderungen seit Ende 2009 zu bearbeiten / zu aktualisieren, danke für den Hinweis auf diese veraltete Antwort.

    – Joris Timmermans

    3. August 2012 um 7:13 Uhr

  • Der Unterschied besteht auch darin, dass der C++-Standard keine benannten Untergruppen unterstützt, d. h. Teile von regulären Ausdrücken zu benennen, damit Sie sie später anhand des Namens abrufen können.

    – Benutzer3111311

    23. Januar 2014 um 12:57 Uhr

Unter UNIX-ähnlichen Systemen können Sie verwenden POSIX-Regex-Funktionen.

Das Microsoft Visual C++ 2008 Feature Pack 1 (jetzt in Visual Studio 2008 Service Pack 1 integriert) enthält eine Implementierung der „offiziellen“ TR1-Reg-Ex-Typen. Sich selbst umhauen 🙂

Überprüf den Regex steigern Bibliothek. Es soll mit C++0x zum Standard werden.

Wenn durch Standard Du meinst gebündelt mit Compiler, dann nicht. Aber die meisten anderen Sprachen, die Regex-Erweiterungen bündeln, verwenden einen ziemlichen Standard c Implementierungen. Z.B PCRE – Perl-kompatibler regulärer Ausdruck und C-Bibliotheken haben POSIX-Regex-Unterstützung (siehe Manpage).

Benutzer-Avatar
ROTER WEICHER ADAIR

Reguläre Ausdrücke sind Teil der C++-Erweiterung TR1. Dinkumware, Visual Studio und andere haben dies bereits implementiert. Sehen

Schnellstart für reguläre Ausdrücke in C++ TR1

Visual C++ 2008 Feature Pack

Benutzer-Avatar
Larsmoa

Qt, von Trolltech, hat auch eine Regex-Implementierung, die ich sehr einfach zu verwenden finde. Wenn Sie jedoch nicht vorhaben, Qt für etwas anderes zu verwenden, würde ich Boost.Regex verwenden, da Sie Boost wahrscheinlich auch für andere Zwecke verwenden würden.

1187160cookie-checkVerfügt C oder C++ über eine Standard-Regex-Bibliothek?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy