necesito analizar un archivo de registro y obtener los tiempos y la cadena de llamada de función asociada Esto se almacena en el archivo de registro como tal: {"tiempo": "2012-09-24T03: 08: 50 "," mensaje ":" Call() started "}
Habrá varias llamadas a funciones de tiempo registradas entre otros caracteres de cadena, por lo tanto, espero usar regex para recorrer el archivo y tomar todas estas
me gustaría agarrar toda la información registrada incluyendo las llaves
he intentado el siguiente
Pattern logEntry = Pattern.compile("{(.*?)}");
Matcher matchPattern = logEntry.matcher(file);
y
Pattern.compile("{[^{}]*}");
Matcher matchPattern = logEntry.matcher(file);
sigo obteniendo errores de repetición ilegales, por favor ayuda! Gracias.
¡Esto funcionó! Gracias. Traté de escapar y siempre obtenía un error de compilación, solo estaba usando una barra invertida. ¿Cuál es el motivo de la doble barra invertida? Este es el error original: Secuencia de escape inválida (las válidas son \ b \ t \ n \ f \ r \ "\ '\\) –
porque está escapando del carácter de escape para que se alimente en el compilador de expresiones regulares, por ejemplo: '\ n' == nueva línea, '\\' == \ character, y el compilador de expresiones regulares necesita ver que dado que los regex no son ciudadanos de primera clase en Java (están en otros idiomas como javascript), se compilan en runtime, no compile time ... – ckozl
Ok, veo lo que dice en el momento de la compilación java piensa que es solo una cadena por lo tanto "\\" para obtener "\", y luego en tiempo de ejecución usa esa "\" en el Regex. Gracias por toda la ayuda. –