Recurro a vuestra sapiencia una vez más porque aunque tengo una posible solución alternativa me gustaría usar expresiones regulares para resolver este problema.
Estoy intentando remplazar en un archivo Java ciertas llamadas a métodos. Estas llamadas tienen una sintaxis similar a la siguiente:
Objeto.metodo(parametro1, "parametro2", null);
Dado que la sintaxis de Java no es muy estricta permite bastantes variantes por lo que si pudiera usar expresiones regulares me permitiría cubrir todas las posibles casuísticas. Bueno, al lio, la idea es recoger el contenido entre paréntesis y de ahí obtener el que viene entre comillas:
Using perl Syntax Highlighting
- if ($contenido =~ /\bObjeto\b(.|\n)*?\bmetodo\b(.|\n)*?\)/i)
- {
- my $contentBrackets = $2;
- }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
El problema es que con el $2 no consigo capturar el texto que hay entre método y el paréntesis final, y aunque el if() e incluso un replace encuentran el texto y lo remplazan lo que no consigo es extraerlo para tratarlo.
Sé que con un conocimiento mejor de las expresiones regulares podría sacarlo pero no consigo sacar nada con todas las pruebas realizadas.
Gracias de antemano.