regex - Prise en charge des expressions régulières facile à utiliser en C ++?

Translate

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

Exigences:

  • Impossible d'utiliser les bibliothèques de regex Boost ou ACE (malheureusement)
  • Impossible d'utiliser .NET Regex (ou tout autre code managé)

La principale exigence est qu'il doit être autonome et ouvert.

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

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

La source
Translate

essayerlibpcre

Si vous êtes bloqué sur Windows, ils ont un port Windows qui devrait fonctionner. je saiséditeur de texte électroniquel'utilise, donc au moins c'est la preuve que cela fonctionne :-)

La source
Translate

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.Tu piges

La source
Translate

Qta aussi une belleExpression régulièrela mise en oeuvreQRegExp. Il est également indépendant de la plateforme.

La source
Translate

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

La source
Sandy Lee
Translate

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

La source
Translate

Je soutiendrais la recommandation pourPCRE. 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 quelque chose d'un langage d'expression régulière standard de facto, qui sera le bienvenu pour vos utilisateurs. PCRE est bien sûr compatible Perl et Python utilise également la même bibliothèque.

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

La source
Translate

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

La source
Translate

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

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

leCAtlRegExpLe modèle de classe implémente l'analyseur et le moteur de correspondance. ...

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

La source
Rob
Translate

La bibliothèque et les outils gratuits du serveur ATL de CodePlex incluent un analyseur de regex. VoirAtlServer dans l'archive CodePlex

ATL Server est une bibliothèque de classes C ++ qui permet aux développeurs de créer des parties client et serveur d'applications et de services Web C ++ de type service. Il fournit une grande partie des fonctionnalités requises pour créer des sites Internet à grande échelle, telles que la messagerie SOAP, les fonctionnalités de mise en cache, les fonctionnalités de thread, le traitement des expressions régulières, la gestion de l'état de session, la surveillance des performances, la prise en charge 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.

La source