Ayuda con Java y Expresiones Regulares!!!! (me urge!)

Teiwaz
12 de Diciembre del 2004
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("173");
Matcher encaja = patron.matcher(flujo);
String resultado = encaja.replaceAll("-");
System.out.println("Resultado es " + resultado);
}


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

EL problema inicial era poner: 173[^175]*175 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 173 en vez de '{' pq el '{' corresponde un operador para expresiones regulares de java.

Lemony Snicket
12 de Diciembre del 2004
Varias cosas.
1)Estás poniendo comillas dobles"u0173" y no comillas simples 'u173 ' para indicar el carácter.

2)Java usa UNICODE de 16 bits (la u en uxxxx quiere decir eso). El entero asociado a ese carácter es el resultado de transformar el hexadecimal (0173) a entero (371).

3) Según el mapa de caracteres a ese carácter ({) le corresponde el unicode u007B que tiene los 9 bits más significativos cero y por tanto es un carácter representado en ASCII (7 bits).

TELWAZ
12 de Diciembre del 2004
ME PODRIAS ENVIAR TU ANALIZADOR LEXICO, PORQUE NECESITO UNO DE URGENCIA.
PARA HOY
TE LO AGRADECERIA