Java - Ayuda con Java y Expresiones Regulares!!!! (me urg

 
Vista:

Ayuda con Java y Expresiones Regulares!!!! (me urg

Publicado por Teiwaz (2 intervenciones) el 27/12/2003 17:13:39
Estoy haciendo un analizador lexico para pascal en java, que triste, todavia no termino la universidad.

La cosa es la siguiente:

Código:
void Comentarios(){

Pattern patron = Pattern.compile("\0173");
Matcher encaja = patron.matcher(flujo);
String resultado = encaja.replaceAll("-");
System.out.println("Resultado es " + resultado);
}

Se supone que el \0173 corresponde al caracter '{' segun la tabla ascii. Pero no lo reconcoce el maldito java. En que estoy fallando? Si reemplazo el \0173 por una 'a' busca todas las a y las reemplaza por el '-'

EL problema inicial era poner: \0173[^\0175]*\0175 que seria: "{"[^}]*"}" para emparejar los comentarios segun pascal y sacarlos del flujo de datos.

Ayuda querido forito porfavor!! Esta tontera es para el martes!

Pd: Tuve que poner \0173 en vez de '{' pq el '{' corresponde un operador para expresiones regulares de java.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con Java y Expresiones Regulares!!!! (me

Publicado por JorgeM (37 intervenciones) el 27/12/2003 20:20:20
Saludos
Pattern patron = Pattern.compile("\0173");
en esta linea lo que estás mandando es un String no un char
ya probaste con
Pattern patron = Pattern.compile('{');
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Java y Expresiones Regulares!!!! (me

Publicado por Teiwaz (2 intervenciones) el 30/12/2003 03:37:20
Pero elemental Teiwaz. Siempre debes leer bien la documentacion existente, en ese caso la API.

Para la libreria un { funciona como un operador, por lo tanto debemos enviarle el caracter {, esto se logra haciendo \{. Pero debes pensar que si pones eso en un string, java alegara que no es un escape valido. Pero notese que la libreria recibe string, entonces para que le llegue efectivamente un \{ y java no alegue un escape invalido debes poner: \\{.

Entendiste!! Eso te pasa por no pensar y no leer, a ves si te queda mas claro, el codigo quedaria asi:

Código:
void Comentarios(){

Pattern patron = Pattern.compile("\\{[^\\}]*\\}");
Matcher encaja = patron.matcher(flujo);
String resultado = encaja.replaceAll("-");
System.out.println("Resultado es " + resultado);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar