Czy to? Jeśli tak, to gdzie mogę uzyskać dokumentację ... jeśli nie, to jaka byłaby najlepsza alternatywa?Czy C lub C++ ma standardową bibliotekę regex?
Odpowiedz
C++ 11 teraz wreszcie ma standard regex library - std :: regex. Jeśli nie masz dostępu do implementacji C++ 11, dobrym rozwiązaniem może być Nie jest to w pełni równoważne std :: regex (np. the "empty()" method is not in the std::regex), ale jest to bardzo dojrzała implementacja regex dla C++.
Ta odpowiedź jest datowana, od 2012 odpowiedź brzmi teraz Tak, C++ ma standardową bibliotekę regex, wymagane przez C++ 11, pod nagłówkiem "regex" –
@Clairvoire - Postanowiłem edytować/zaktualizować moją odpowiedź na zmiany od końca 2009 roku, dzięki za heads-up w tej przestarzałej odpowiedzi. –
Różnica polega również na tym, że standard C++ nie obsługuje nazwanych podgrup, czyli nazywania części wyrażeń regularnych, aby później można było uzyskać je po nazwie. – user3111311
Sprawdź bibliotekę boost regex. Powinien stać się częścią standardu z C++ 0x.
W systemach typu UNIX można użyć POSIX regex functions.
Jeśli przez standard masz na myśli w zestawie z kompilatorem, to nie. Ale większość innych języków, które pakują rozszerzenie regex, używa całkiem standardowych implementacji c
. Na przykład. PCRE - Perl Compatible Regular Expression i biblioteki C mają obsługę regex POSIX (patrz man page).
Pakiet Microsoft Visual C++ 2008 Feature Pack 1 (obecnie włączony do Visual Studio 2008 Service Pack 1) zawiera implementację "oficjalnych" typów reg TR1. Powal się :-)
+1 za PCRE - Perl Compatible Regular Expression, Zapamiętałem również użycie Mircosoft's GRETA.
Wyrażenia regularne są częścią rozszerzenia TR1 C++. Dinkumware, visual studio i inne już to zaimplementowały. Zobacz
Qt z Trolltech, ma również realizację regex, które uważam za bardzo łatwy w użyciu. Jednakże, jeśli nie planujesz używać Qt do niczego innego, użyłbym Boost.Regex, ponieważ prawdopodobnie byłbyś dobry używając Boost również do innych celów.
Standardowy język programowania ISO/IEC 14882: 2011 C++ opisuje klasę regex jako część biblioteki C++, która jest pod silnym wpływem dojrzałej biblioteki Boost.
Co ciekawe, od stycznia 2013 r. Zgodność kompilatorów z tym standardem jest wciąż nierówna, np. popularny kompilator C++ pakietu GNU nie obsługuje/nie spełnia tej części standardu.
Z tego powodu najlepiej jest używać Boost w tym momencie, dopóki obsługa kompilatora nie osiągnie zgodności.
- 1. Czy IronPython implementuje standardową bibliotekę Pythona?
- 2. backtrace - ukryj standardową bibliotekę i wywołaj wywołania
- 3. Różnica między biblioteką standardową C a biblioteką C POSIX
- 4. Określanie względnej lokalizacji pliku w pliku web.config do użycia przez standardową bibliotekę klasy C#
- 5. Czy język programowania C ma środowisko uruchomieniowe?
- 6. Czy nodejs ma działającą bibliotekę diff lub algorytm?
- 7. C++ 11 Regex Matching
- 8. Czy C++ ma uporządkowane hash?
- 9. Czy Qt ma interfejs C?
- 10. Czy Objective-C ma odbicie?
- 11. C++ 11 regex: sprawdzanie, czy ciąg zaczyna się od regex
- 12. Powiąż bibliotekę Pythona TO C
- 13. Jak napisać bibliotekę .so, aby zastąpić istniejącą bibliotekę C++ .so?
- 14. C# regex przechwytuje
- 15. C# Regex Pattern Conundrum
- 16. Jak połączyć 2 lub więcej złożeń C# w 1 bibliotekę?
- 17. C++ regex niezrozumienie
- 18. Czy C# ma odpowiednik pakietu #pragma w C++?
- 19. Konwertuj bibliotekę C# do MSTest Project
- 20. Czy obiekt C lub Objective C++ obsługuje wyjątki C++?
- 21. Wiele regex opcje z C# Regex
- 22. Czy PHP ma odpowiednik #ifdef w C/C++?
- 23. Czy zewnętrzne "C" ma jakikolwiek wpływ na C?
- 24. C++ - Podziel ciąg przez regex
- 25. Czy "ANSI C" lub "ANSI C++" nadal coś znaczą?
- 26. c Program ++ przy użyciu GMP bibliotekę
- 27. Czy możesz wywołać bibliotekę DLL z biblioteki C#?
- 28. Rozwiązanie Regex dla Objective-C
- 29. Boost.Regex vs C++ 11 Regex
- 30. C# Regex dla rozszerzenia pliku
Niemal duplikaty: http://stackoverflow.com/questions/181624, http://stackoverflow.com/questions/923500 i 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: można było szybciej uzyskać bogactwo informacji i łatwiej, wyszukując: http://stackoverflow.com/search?q=c+c%2B%2B+regex+standard – dmckee