Prise en charge des expressions régulières facile à utiliser en C++ ?[fermé]

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

  •  08-06-2019
  •  | 
  •  

Question

Je recherche un évaluateur d'expressions régulières robuste et facile à utiliser pour le C++ natif, indépendant de la plate-forme ou spécifique à Windows.

Exigences:

  • Impossible d'utiliser les bibliothèques d'expressions régulières Boost ou ACE (malheureusement)
  • Impossible d'utiliser .NET Regex (ou tout autre code managé)

La principale exigence est qu’il soit autonome et ouvert.

Était-ce utile?

La solution

C++11 inclut désormais la prise en charge des expressions régulières.Ce sera indépendant de la plateforme.Vous avez juste besoin d'un compilateur récent.Consultez la liste suivante pour savoir lequel utiliser.

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

J'espère que cela aide

Autres conseils

essayer libpcre

Si vous êtes bloqué sur Windows, ils ont un port Windows qui devrait fonctionner.Je sais éditeur de texte électronique l'utilise, donc au moins c'est la preuve que ça marche :-)

Si vous utilisez Visual Studio, vous pouvez utiliser Visual C++ 2008 Feature Pack Release, cela implémente une partie de TR1 et inclut l'analyse des expressions régulières. L'obtenir

Qt a aussi un joli Expression régulière mise en œuvre QRegExp.Il est également indépendant de la plateforme.

La bibliothèque GNU C prend en charge expressions régulières.Il est ouvert et le code RE semble être facilement extractible.

La fonction d'expressions régulières de la bibliothèque GNU C (regcomp(), regexec() et amis) est cassée.Utilisez plutôt libertre ;les signatures de fonctions correspondent à celles fournies par la glibc.http://laurikari.net/tre/

J'appuierais la recommandation concernant PCRE.Je l'ai utilisé dans des projets C++ sous Windows et cela fonctionne très bien.C'est gratuit, même pour créer des logiciels commerciaux.Il implémente également une sorte de langage d'expression régulière standard de facto, qui sera le bienvenu pour vos utilisateurs.PCRE est bien entendu compatible Perl et Python utilise également la même bibliothèque.

L'interface PCRE native est un peu délicate et très de style C, cela vaut donc probablement la peine d'écrire un joli wrapper C++ autour d'elle.Il y en a très probablement déjà un, mais je n'en connais aucun.

C++11 et versions ultérieures contiennent désormais le bibliothèque d'expressions régulières standard.
Inclure le <regex> en-tête et utilisation.

Pourquoi n'utilisez-vous pas la bibliothèque regex de Microsoft ATL ?Kenny Kerr a écrit un article court à ce sujet récemment.

ATL inclut une implémentation légère d'expression régulière.Bien que faisant partie à l'origine de Visual C ++, il est désormais inclus dans le téléchargement du serveur ATL.

Le CAtlRegExp Le modèle de classe implémente l'analyseur et le moteur correspondant....

La grammaire des expressions régulières est définie en haut du atlrx.hEn tête de fichier.

La bibliothèque et les outils gratuits du serveur ATL de CodePlex incluent un analyseur d'expressions régulières.Voir AtlServer dans l'archive CodePlex

ATL Server est une bibliothèque de classes C ++ qui permettent aux développeurs de créer des parties client et du serveur d'applications C ++ de type service et de services Web.Il offre une grande partie des fonctionnalités nécessaires pour créer des sites Internet à grande échelle, tels que la messagerie de savon, les installations de mise en cache, les installations de filetage, le traitement régulier de l'expression, la gestion de l'état de session, la surveillance des performances, le support MIME, l'intégration avec IIS et la classe pour interagir avec la sécurité et infrastructure cryptographique.Les versions antérieures de la bibliothèque font partie de Visual Studio 2002, Visual Studio 2003 et Visual Studio 2005.Le projet a démarré à partir de la version de la bibliothèque publiée dans le cadre de Visual Studio 2005 SP1.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top