2009-09-16 14 views
11

Jestem zainteresowany in parsing regexes (nie mylić z użyciem wyrażeń regularnych do analizowania). Czy istnieje BNF dla Java 1.6 regexesCo to jest BNF dla wyrażenia regularnego (w celu napisania pełnego lub częściowego analizatora składni)

(lub innych języków?) [UWAGA: Istnieje similar older question, które nie prowadzą do odpowiedzi dla Java.]

EDIT Aby wyjaśnić, dlaczego muszę zrobić to. Wdrażamy płytki parser do przetwarzania języka naturalnego, który najpierw identyfikuje i oznacza tokeny. Są one następnie przetwarzane za pomocą wyrażenia regularnego. Muszę wiedzieć, jakie grupy zostały przechwycone przez regex (automat przechwytuje tylko ostatni z każdego nawiasem), a także chcę dodać komentarz do wyrażenia z komentarzami.

+0

Dlaczego należy analizować wyrażenie regularne? – Steven

+14

Może implementuje silnik wyrażeń regularnych? –

+1

możliwy duplikat gramatyki [Regex Grammar] (http://stackoverflow.com/questions/265457/regex-grammar) –

Odpowiedz

0

Nie wydaje się być jawne wyrażenie regularne zgodnie z odpowiedziami SO.

6
+0

http://www.faqts.com/knowledge%5Fbase/view.phtml/aid/25718/fid/ 200 nie działa dla mnie – Makach

+0

@Makach: Zamień '% 5F' na' _'. SO wydaje się zastępować to w adresach URL. – Gumbo

+0

Link do faqts wydaje się być martwy. Łącze sfu.ca nie dostarcza ani epsilonu, ani opcjonalnego, a jako takie nie może określać wszystkich zwykłych języków, należy pozwolić na coś tak złożonego, jak wyrażenie regularne perl. – Recurse

2

nie widzę jeden specjalnie dla Java 1.6; ale tu jest początek, że może można zbudować kompletną BNF od:

http://www.users.pjwstk.edu.pl/~jms/qnx/help/watcom/wd/regexp.html#RegularExpressionBNF

... używając Java 1.6 dokumentacji Wzór:

http://java.sun.com/javase/6/docs/api/java/util/regex/Pattern.html

+0

Należy również pamiętać, jeśli jeszcze nie było, że JDK ma obsługę wyrażeń regularnych (zobacz klasę Pattern połączoną w tym poście) - upewnij się, że nie wymyślasz koła. – RMorrisey

+0

Zignoruj ​​ostatni komentarz – RMorrisey

Powiązane problemy