/**
* doc 0
*
*/
/**
* doc 1
*
*/
/**
* doc 0
*
*/
/**
* doc 1
*
*/
Alguem tem uma solução?
/**
* doc 0
*
*/
/**
* doc 1
*
*/
/**
* doc 0
*
*/
/**
* doc 1
*
*/
Alguem tem uma solução?
Cara, eu precisei de algo parecido uma vez. Olhando alguns codigos achei esse:
public class Aspas {
static String java =
"/**\n" +
" * javadoc com alguns caracaters * '\"\n" +
" * mais uma 'linha'\n" +
" */\n" +
"private String teste;\n" +
"/** javadoc */\n" +
"private String teste;\n" +
"/*\n"+
" * comment\n" +
" * mais uma 'linha'\n" +
" */\n" +
"private String teste;\n" +
"/* comment */\n" +
"private String teste;\n" +
"// single line\n" +
"private String teste;\n";
public static void main(String[] args) {
String pattern1 = "/\*(.)*\*/"; // comentarios multi
String pattern2 = "//(.)*"; // comentarios single, ate final da linha
String pattern3 = "/\*(.)*"; // comentarios multi quebrados
String pattern31 = "\*(.)*"; // meio comentarios multi quebrados
String pattern32 = "\*/"; // final comentarios multi quebrados
String pattern4 = "\"(.)*\""; // aspas
String pattern5 = "'(.)'"; // char
System.out.println("(antes)\n" + java);
String str = java.replaceFirst(pattern1, "");
str = str.replaceFirst(pattern1, "");
str = str.replaceAll(pattern2, "");
str = str.replaceAll(pattern3, "");
str = str.replaceAll(pattern31, "");
str = str.replaceAll(pattern32, "");
str = str.replaceAll(pattern4, "");
str = str.replaceAll(pattern5, "");
System.out.println("(depois)\n" + str);
}
}
Resolvi com varias expressoes regulares. Só não estou lembrado o pq tem regexp pra
tirar aspas e char.
Talvez não precise, deveria ser alguns testes
*Editado: Olhando com mais cuidado agora, não vai funcionar para javadoc nos métodos que estiverem *
no meio de uma string por exemplo. Mas é um bom começo, tu pode incluir esse tratamento.
vixi mano, eu consegui.
Tem um tipo de matcher non greedy (? ou +?), que eh essas paradinhas de * ou + mas que tentam pegar a maior string e sim o primeiro que satisfazer o padrao do regex.
Então ali em vez de /**[\s\S]*/ é só utilizar /**[\s\S]*?*/
Isso vale pra comentário de multilinhas tb.
Eh soh tirar um dos * no começo do pattern