Jede C++-RegExp-Bibliothek mit Unterstützung für vollständige Regexp im Lookbehind

Zum Beispiel Symbol * und +. Wie net.Framework C#. Dieses Beispiel sollte erfolgreich funktionieren:

(?<=a.*)b
wie wäre es mit C++11 und cplusplus.com/reference/regex
@RichardChambers Wo wird unbegrenztes / nicht fixiertes Lookbehind unterstützt?
Ich habe es nur flüchtig verwendet und bin mit seinen Anwendungen und seinem Support nicht gut vertraut. Wenn ich eine endgültige Antwort für Sie hätte, hätte ich eher eine tatsächliche Antwort als einen Kommentar erstellt. Ich schlage vor, dass Sie Ihre Frage mit etwas mehr Informationen über die Zielumgebung, den Zielcompiler usw. aktualisieren. Außerdem schlage ich vor, dass Sie einen Blick auf die Boost-Bibliothek boost.org/doc/libs/1_65_1/libs/regex/doc/html werfen /index.html und ich bin mir nicht sicher, was "unbegrenztes/unfixiertes Lookbehind" ist, also schlage ich vor, dass Sie mit einem Beispiel mehr über Ihre tatsächlichen Anforderungen als "vollständige Unterstützung von RegExp" erfahren.
Dieser Forenthread website-watcher.info/forum/viewtopic.php?t=1522&view=next zeigt also, dass .NET eines der besten ist, und Sie erwähnen auch C#, also schlage ich vor, dass Sie sich C++/CLI mit Visual Studio 2015 oder ansehen 2017.
Lizenz? Preis? Quellenverfügbarkeit? Unterstützte Compiler? Betriebssysteme?
@ RichardChambers: Reguläre Ausdrücke in C ++ 11 scheinen keine Look-Behind-Unterstützung zu enthalten. Siehe: en.cppreference.com/w/cpp/regex/basic_regex und die Links zu den Syntaxoptionen: Modified ECMAScript , Extended POSIX , grep und egrep.
Ich nehme an, C ++ 11 RegEx tut dies nicht, ich nehme Ihr Wort dafür. Ich dachte, dass C++/CLI mit .NET der Weg wäre, den Sie gehen würden, da C++ und C# so weit wie .NET fast gleich sind, obwohl die Syntax oft unterschiedlich ist. Siehe Reguläre Ausdrücke (C++/CLI) von MSDN mit Dokumentation und Beispielen, die „die Verwendung des .NET Framework System.Text.RegularExpressions-Namespace demonstrieren“.

Antworten (1)

Die Perl-kompatible Bibliothek für reguläre Ausdrücke (PCRE)

  • Sprache: C (scheint auch C++ Wrapper zu haben)
  • Compiler-Unterstützung: GCC sicher, wahrscheinlich alle gängigen Compiler
  • Aktiv gewartet: Ja, die letzte Veröffentlichung liegt 3 Monate zurück
  • Lizenz: BSD

PCRE untermauert die Unterstützung regulärer Ausdrücke in R, PHP, Delphi, MonetDB und anderen Softwareprojekten – daher ist es ziemlich weit verbreitet.

Diese Seite schlägt vor, dass die PCRE-Bibliothek Look-Behinds mit variabler Länge unterstützt, obwohl sie keine beliebigen regulären Ausdrücke innerhalb von Look-Behinds unterstützt.

PS: Die Website ( https://regular-expressions.info ) ist eine interessante Informationsquelle über verschiedene Engines/Bibliotheken für reguläre Ausdrücke.