Łatwy w obsłudze obsługę wyrażeń regularnych w C ++?

głosy
23

Szukam solidnej, łatwy w obsłudze, regularne wyrażeń dla rodzimej C ++, albo niezależny od platformy lub Windows konkretnego.

wymagania:

  • Nie można używać podwyższenie lub bibliotek regex ACE (niestety)
  • Nie można używać .NET Regex (lub dowolny kod zarządzany)

Głównym wymogiem jest to, że powinien on być samodzielnym i otwartym.

Utwórz 04/08/2008 o 06:50
źródło użytkownik
W innych językach...                            


10 odpowiedzi

głosy
9

spróbuj libpcre

Jeśli utkniesz na oknach mają port Windows, który powinien działać. Wiem, e-TextEditor używa go, więc przynajmniej to dowód, że działa :-)

Odpowiedział 04/08/2008 o 07:23
źródło użytkownik

głosy
4

Biblioteka GNU C obsługuje wyrażeń regularnych . Jest otwarty, a kod RE wydaje się być łatwo wyekstrahować.

Odpowiedział 04/08/2008 o 07:41
źródło użytkownik

głosy
4

GNU C Library regularny zakład wyrażenia (regcomp (), regexec () i znajomych) jest uszkodzony. Użyj libetre zamiast; podpisy funkcyjne dopasować te dostarczone przez glibc. http://laurikari.net/tre/

Odpowiedział 04/08/2008 o 13:23
źródło użytkownik

głosy
8

Jeśli używasz Visual Studio można użyć Visual C ++ 2008 Feature Pack wydaniu, to realizuje niektóre z TR1 i zawiera wyrażenia regularnego analizowania. Zdobyć

Odpowiedział 04/08/2008 o 20:44
źródło użytkownik

głosy
8

Qt posiada również piękny wyrażenie regularne realizacji QRegExp . Jest również niezależny od platformy.

Odpowiedział 10/08/2008 o 14:07
źródło użytkownik

głosy
2

Dlaczego nie można użyć wyrażenia regularnego bibliotekę Microsoft ATL? Kenny Kerr napisał krótki artykuł na ten temat w ostatnim czasie.

ATL zawiera lekki realizację wyrażenia regularnego. Chociaż pierwotnie częścią Visual C ++, jest teraz dołączony do pobrania ATL Server.

CAtlRegExpSzablon klasa implementuje silnik parsera i dopasowanie. ...

Gramatyka wyrażenie regularne jest zdefiniowana w górnej części atlrx.h pliku nagłówka.

Odpowiedział 11/08/2008 o 07:13
źródło użytkownik

głosy
4

Chciałbym drugie zalecenie dla PCRE . Użyłem go w projektach C ++ w Windows i działa świetnie. To nic nie kosztuje, nawet do budowy oprogramowania komercyjnego. Realizuje również coś standardowego języka de facto wyrażenie regularne, które będą mile widziane użytkowników. PCRE jest oczywiście kompatybilny z Perl, Python i również korzysta z tej samej biblioteki.

Natywny interfejs PCRE jest nieco niewygodne i bardzo w stylu C, więc to chyba warto pisać piękny C ++ otoki wokół niego. Jest bardzo prawdopodobne już jest jednym tam, ale ja nie znam żadnego.

Odpowiedział 11/08/2008 o 09:25
źródło użytkownik

głosy
1

Wolna biblioteka Serwer ATL i narzędzia od CodePlex zawiera parser regex. Zobacz AtlServer w CodePlex Archiwum

ATL Server jest biblioteka klas C ++, które umożliwiają programistom tworzenie zarówno klienta i serwera części usług typu C ++ aplikacji i usług internetowych. Zapewnia wiele funkcjonalności wymaganych do zbudowania dużej skali witryn internetowych, takich jak wiadomości SOAP, udogodnienia buforowania, udogodnienia gwintów, regularnym przetwarzaniem wypowiedzi, zarządzania sesji-państwa, monitorowanie wydajności, wsparcie MIME, integracja z IIS i klasy do interakcji z bezpieczeństwem i infrastruktury kryptograficznej. Wcześniejsze wersje biblioteki są częścią programu Visual Studio 2002, Visual Studio 2003 i Visual Studio 2005. Projekt został rozpoczęty z wersją biblioteki wydany jako część Visual Studio 2005 SP1.

Odpowiedział 16/09/2008 o 21:06
źródło użytkownik

głosy
9

C ++ 11 zawiera teraz obsługę wyrażeń regularnych. Będzie to niezależne od platformy. Trzeba tylko niedawne kompilatora. Sprawdź poniższą listę, aby wiedzieć, który z nich korzystać.

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

Mam nadzieję, że to pomoże

Odpowiedział 19/06/2013 o 19:47
źródło użytkownik

głosy
3

C ++ 11 i do przodu teraz zawiera standardową bibliotekę wyrażenie regularne .
Zawierać <regex>nagłówek i użytkowaniu.

Odpowiedział 08/05/2016 o 14:36
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more