Lo fa? Se sì, dove posso ottenere la documentazione per questo ... se no, quale sarebbe l'alternativa migliore?C o C++ ha una libreria regolare di espressioni regolari?
risposta
C++ 11 ora ha finalmente un standard regex library - std :: regex.
Se non si ha accesso a un'implementazione C++ 11, una buona alternativa potrebbe essere boost regex. Non è completamente equivalente a std :: regex (ad esempio the "empty()" method is not in the std::regex) ma è un'implementazione regex molto matura per C++.
Questa risposta è datata, dal 2012 la risposta è ora Sì, C++ ha una libreria regex standard, mandato da C++ 11, sotto l'intestazione "regex" –
@ Callirvoire - Ho deciso di modificare/aggiornare la mia risposta alle modifiche dalla fine del 2009, grazie per l'heads-up su questa risposta obsoleta. –
La differenza è anche che lo standard C++ non supporta sottogruppi denominati, ovvero denominare parti di espressioni regolari in modo che in seguito sia possibile ottenerle per nome. – user3111311
Controllare la libreria boost regex. Dovrebbe diventare parte dello standard con C++ 0x.
In sistemi UNIX-like è possibile utilizzare POSIX regex functions.
Se da standard si intende in bundle con il compilatore, quindi no. Ma la maggior parte degli altri linguaggi che raggruppano l'estensione regex utilizzano implementazioni standard piuttosto che c
. Per esempio. Le librerie PCRE - Perl Compatible Regular Expression e C hanno supporto di regex POSIX (vedere man page).
Microsoft Visual C++ 2008 Feature Pack 1 (ora inserito in Visual Studio 2008 Service Pack 1) contiene un'implementazione dei tipi di reg TR1 "ufficiali". Esauriti :-)
+1 per PCRE - Perl Compatible Regular Expression, mi sono ricordato di usare Mircosoft's GRETA pure.
Le espressioni regolari fanno parte dell'estensione C++ TR1. Dinkumware, Visual Studio e altri hanno già implementato questo. Vedere
Qt, da Trolltech, ha anche un'implementazione regex che trovo molto facile da usare. Tuttavia, se non stai pianificando di utilizzare Qt per qualsiasi altra cosa, utilizzerei Boost.Regex come probabilmente ti piacerebbe usare Boost anche per altri scopi.
Il linguaggio di programmazione standard ISO/IEC 14882: 2011 C++ descrive una classe regex come parte della libreria di C++, che è fortemente influenzata dalla libreria Boost matura.
Stranamente, a partire da gennaio 2013, la conformità dei compilatori a questo standard è ancora discutibile, ad es. il popolare compilatore C++ della compilatrice GNU non supporta/aderisce a questa parte dello standard.
Per questo motivo, è meglio utilizzare Boost in questo momento fino a quando il supporto del compilatore non raggiunge la conformità.
- 1. Espressioni regolari in C
- 2. Espressioni regolari in C++ STL
- 3. Espressioni regolari Python O
- 4. Espressioni regolari in C# che funzionano lentamente
- 5. Raschia schermo: espressioni regolari o espressioni XQuery?
- 6. È \ 0 ("\\ 0" in una stringa di espressioni regolari in stile C) una sequenza di escape valida nelle espressioni regolari C++?
- 7. Generatore di parser di espressioni regolari
- 8. c espressione regolare howto
- 9. Caratteri greci, espressioni regolari e C#
- 10. Le espressioni regolari in C preprocessore macro
- 11. Libreria di stringhe C
- 12. Posso usare le espressioni regolari con String.Replace in C#?
- 13. Espressioni regolari lookahead negativo
- 14. Libreria per verificare se due espressioni regolari sono uguali/isomorfe
- 15. Perché C# ha le espressioni regolari compilate più velocemente dei metodi equivalenti per le stringhe?
- 16. Uso di espressioni regolari con C++ su Unix
- 17. Espressioni regolari (RegEx) - Una stringa Lunghezza variabile
- 18. Espressione regolare C# per convalidare una data?
- 19. Sicurezza delle espressioni regolari
- 20. Puzzle con espressioni regolari
- 21. Per utilizzare o non utilizzare le espressioni regolari?
- 22. Molteplici opzioni di espressioni regolari con C# Regex
- 23. Restituzione di espressioni regolari sovrapposte
- 24. Espressioni regolari (staffe normali o annidate)
- 25. Espressioni regolari nel findstr
- 26. C'è una libreria che può compilare C++ o C
- 27. Combinare più espressioni regolari in un automa
- 28. Pip ricerca di espressioni regolari
- 29. Comprendere le espressioni regolari
- 30. Corrispondenza a^n b^n c^n (ad esempio "aaabbbccc") utilizzando le espressioni regolari in C#
Quasi duplicati: http://stackoverflow.com/questions/181624, http://stackoverflow.com/questions/923500 e http://stackoverflow.com/questions/815429. –
http://stackoverflow.com/questions/329517/there-is-a-function-to-use-pattern-matching-using-regular-expressions-in-c – dmckee
BTW: avresti potuto avere un sacco di informazioni più velocemente e più facile da cercare: http://stackoverflow.com/search?q=c+c%2B%2B+regex+standard – dmckee