2009-09-16 44 views
11

Estoy interesado en in parsing regexes (no debe confundirse con el uso de expresiones regulares para el análisis). ¿Hay una BNF para Java 1.6 expresiones regulares¿Cuál es el BNF para una expresión regular (para escribir un analizador sintáctico completo o parcial)

(u otros idiomas?) [NOTA: No es un similar older question que no condujo a una respuesta para Java.]

EDITAR Para explicar por qué tengo que hacer esta. Estamos implementando un analizador superficial para el procesamiento del lenguaje natural que primero identifica y etiqueta los tokens. Estos luego se procesan con una expresión regular. Necesito saber qué grupos han sido capturados por la expresión regular (el autómata solo captura el último de cada paréntesis) y también quiero anotar la expresión regular con comentarios.

+0

¿Por qué necesita analizar la expresión regular? – Steven

+14

¿Tal vez está implementando un motor de expresiones regulares? –

+1

posible duplicado de [Regex Grammar] (http://stackoverflow.com/questions/265457/regex-grammar) –

Respuesta

0

no parece que haya una regex explícita según SO respuestas.

6
+0

http://www.faqts.com/knowledge%5Fbase/view.phtml/aid/25718/fid/ 200 no funciona para mí – Makach

+0

@Makach: Reemplace '% 5F' con' _'. SO parece reemplazar eso en las URL. – Gumbo

+0

El enlace faqts parece estar muerto. El enlace sfu.ca no proporciona epsilon ni es opcional, y como tal no puede especificar todos los idiomas regulares, permite algo tan complejo como una expresión regular de perl. – Recurse

2

no veo uno específicamente para java 1,6; pero aquí hay un principio que tal vez se puede construir una BNF completa de:

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

... utilizando la documentación de Java 1.6 para el patrón:

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

+0

También debe tener en cuenta, si aún no lo hizo, que el JDK tiene soporte para expresiones regulares (consulte la clase de Patrón vinculada en esta publicación) - asegúrese de no reinventar la rueda. – RMorrisey

+0

Sin tener en cuenta el último comentario – RMorrisey

Cuestiones relacionadas