Einfach zu verwendende Unterstützung für reguläre Ausdrücke in C++?[geschlossen]

StackOverflow https://stackoverflow.com/questions/1041

  •  08-06-2019
  •  | 
  •  

Frage

Ich suche einen robusten, benutzerfreundlichen Evaluator für reguläre Ausdrücke für natives C++, entweder plattformunabhängig oder Windows-spezifisch.

Anforderungen:

  • Boost- oder ACE-Regex-Bibliotheken können (leider) nicht verwendet werden.
  • .NET Regex (oder verwalteter Code) kann nicht verwendet werden.

Die Hauptanforderung besteht darin, dass es eigenständig und offen sein sollte.

War es hilfreich?

Lösung

C++11 bietet jetzt die Unterstützung regulärer Ausdrücke.Es wird plattformunabhängig sein.Sie benötigen lediglich einen aktuellen Compiler.Sehen Sie sich die folgende Liste an, um zu erfahren, welches Sie verwenden sollten.

http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport

Ich hoffe es hilft

Andere Tipps

versuchen libpcre

Wenn Sie bei Windows nicht weiterkommen, gibt es einen Windows-Port, der funktionieren sollte.Ich weiß E-Texteditor nutzt es, also ist das zumindest der Beweis, dass es funktioniert :-)

Wenn Sie Visual Studio verwenden, können Sie Visual C++ 2008 Feature Pack Release verwenden. Dieses implementiert einen Teil von TR1 und umfasst die Analyse regulärer Ausdrücke. Bekomme es

Qt hat auch ein schönes Regulären Ausdruck Implementierung QRegExp.Es ist auch plattformunabhängig.

Die GNU C-Bibliothek unterstützt Reguläre Ausdrücke.Es ist offen und der RE-Code scheint leicht extrahierbar zu sein.

Die Funktion für reguläre Ausdrücke der GNU C-Bibliothek (regcomp(), regexec() und Co.) ist defekt.Verwenden Sie stattdessen libetre;Die Funktionssignaturen stimmen mit denen von glibc überein.http://laurikari.net/tre/

Ich würde mich der Empfehlung anschließen PCRE.Ich habe es in C++-Projekten unter Windows verwendet und es funktioniert großartig.Es ist kostenlos, auch für die Erstellung kommerzieller Software.Es implementiert auch so etwas wie eine De-facto-Standardsprache für reguläre Ausdrücke, die Ihren Benutzern willkommen sein wird.PCRE ist natürlich Perl-kompatibel und auch Python nutzt die gleiche Bibliothek.

Die native PCRE-Schnittstelle ist etwas umständlich und stark im C-Stil gehalten, daher lohnt es sich wahrscheinlich, einen schönen C++-Wrapper darum zu schreiben.Es gibt sehr wahrscheinlich bereits einen, aber ich kenne keinen.

C++11 und höher enthält jetzt die Standardbibliothek für reguläre Ausdrücke.
Umfassen die <regex> Header und Verwendung.

Warum verwenden Sie nicht die Regex-Bibliothek von Microsoft ATL?Kenny Kerr hat eine geschrieben kurzer Artikel dazu kürzlich.

ATL umfasst eine einfache Implementierung regulärer Ausdrücke.Obwohl es ursprünglich Teil von Visual C ++ ist, ist es jetzt im ATL Server -Download enthalten.

Der CAtlRegExp Die Klassenvorlage implementiert den Parser und die passende Engine....

Die Grammatik des regulären Ausdrucks wird oben definiert atlrx.hHeader-Datei.

Die kostenlose ATL-Serverbibliothek und -Tools von CodePlex enthält einen Regex-Parser.Sehen AtlServer im CodePlex-Archiv

ATL Server ist eine Bibliothek von C ++-Klassen, mit denen Entwickler sowohl Client- als auch Server-Teile von C ++-Anwendungen vom Service-Typ-Typ und Webdiensten erstellen können.Es bietet einen Großteil der Funktionen, die für den Aufbau von Internet-Websites in großem Maßstab erforderlich sind, z. und kryptografische Infrastruktur.Die früheren Versionen der Bibliothek sind Teile von Visual Studio 2002, Visual Studio 2003 und Visual Studio 2005.Das Projekt wurde mit der Version der Bibliothek gestartet, die als Teil von Visual Studio 2005 SP1 veröffentlicht wurde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top