Domanda

Sto cercando un analizzatore di espressioni regolari robusto, facile da usare per C++ nativo, indipendente dalla piattaforma o specifico per Windows.

Requisiti:

  • Impossibile utilizzare le librerie regex Boost o ACE (purtroppo)
  • Impossibile utilizzare .NET Regex (o qualsiasi codice gestito)

Il requisito principale è che dovrebbe essere autonomo e aperto.

È stato utile?

Soluzione

C++11 ora include il supporto delle espressioni regolari.Sarà indipendente dalla piattaforma.Hai solo bisogno di un compilatore recente.Controlla il seguente elenco per sapere quale utilizzare.

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

Spero che sia d'aiuto

Altri suggerimenti

Tentativo libpcre

Se sei bloccato su Windows, hanno una porta Windows che dovrebbe funzionare.Lo so e-texteditor lo usa, quindi almeno questa è la prova che funziona :-)

Se utilizzi Visual Studio puoi utilizzare la versione Visual C++ 2008 Feature Pack, che implementa parte di TR1 e include l'analisi delle espressioni regolari. Prendilo

Qt ha anche un bel Espressione regolare implementazione QRegExp.È anche indipendente dalla piattaforma.

La libreria GNU C supporta espressioni regolari.È aperto e il codice RE sembra essere facilmente estraibile.

La funzionalità delle espressioni regolari della libreria GNU C (regcomp(), regexec() e simili) è danneggiata.Usa invece libetre;le firme delle funzioni corrispondono a quelle fornite da glibc.http://laurikari.net/tre/

Vorrei secondo la raccomandazione per PCRE.L'ho usato in progetti C++ in Windows e funziona benissimo.È gratuito, anche per la creazione di software commerciale.Implementa anche una sorta di linguaggio di espressione regolare standard di fatto, che sarà gradito ai tuoi utenti.PCRE è ovviamente compatibile con Perl e anche Python utilizza la stessa libreria.

L'interfaccia nativa di PCRE è un po' scomoda e molto in stile C, quindi probabilmente vale la pena scrivere un bel wrapper C++ attorno ad essa.Molto probabilmente ce n'è già uno là fuori, ma non ne conosco nessuno.

C++11 e versioni successive ora contengono il file libreria di espressioni regolari standard.
Includi il <regex> intestazione e utilizzo.

Perché non usi la libreria regex di Microsoft ATL?Kenny Kerr ha scritto a breve articolo su questo recentemente.

ATL include un'implementazione leggera delle espressioni regolari.Sebbene originariamente parte di Visual C ++, ora è incluso con il download del server ATL.

IL CAtlRegExp Il modello di classe implementa il parser e il motore corrispondente....

La grammatica delle espressioni regolari è definita nella parte superiore del file atlrx.hfile di intestazione.

La libreria e gli strumenti gratuiti del server ATL di CodePlex includono un parser regex.Vedere AtlServer nell'archivio CodePlex

ATL Server è una libreria di classi C ++ che consentono agli sviluppatori di creare parti del client e server delle applicazioni C ++ di tipo servizio e servizi Web.Fornisce gran parte della funzionalità richiesta per creare siti Internet su larga scala, come messaggi di soap, strutture di memorizzazione nella cache, impianti di threading, elaborazione delle espressioni regolari, gestione dello stato-sessione, monitoraggio delle prestazioni, supporto di mIME, integrazione con IIS e classe per l'interazione con la sicurezza e infrastruttura crittografica.Le versioni precedenti della biblioteca sono parti di Visual Studio 2002, Visual Studio 2003 e Visual Studio 2005.Il progetto è partito dalla versione della libreria rilasciata come parte di Visual Studio 2005 SP1.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top