Gostaria de pegar o texto entre duas palavras ou caracteres.
Entrada: “ALUNO: AQUI PODE TER QUALQUER NOME ,”
gostaria de pegar o texto “AQUI PODE TER QUALQUER NOME”.
Meu ponta pé inicial é:
s = s.replaceAll("ALUNO: ([A-Z]+) ,", pegaTexto("$1") );
Gostaria de pegar o texto entre duas palavras ou caracteres.
Entrada: “ALUNO: AQUI PODE TER QUALQUER NOME ,”
gostaria de pegar o texto “AQUI PODE TER QUALQUER NOME”.
Meu ponta pé inicial é:
s = s.replaceAll("ALUNO: ([A-Z]+) ,", pegaTexto("$1") );
Pode - se usar:
s = s.replaceAll("ALUNO:", "");
Abraços!
Acho que vc não entendeu muito bem albsilva quero pegar todo o texto que estiver entre “ALUNO:” e a virgula. O texto pode ser grande e continuar depois da virgula.
Algo assim Algebra?
String s = "ALUNO: AQUI PODE TER QUALQUER NOME , teste testando";
String[] aux = s.split(",");
s = String.valueOf(aux[0]).replaceAll("ALUNO: ", "");
System.out.println(s);
Eu to tentando construir um padrão regex que identifica qualquer conteúdo que comece depois das palavras ALUNO ou PROFESSOR e termine antes de uma virgula ou de qualquer letra de caixa baixa, mas ainda não está dando certo:
Pattern pat = Pattern.compile ("PROFESSOR:|ALUNO:[.\n]*(.*?)[,|[a-z]]");
Pode haver quebra de linha entre as palavras por isso o [.\n]*
mas ainda não funciona muito bem, alguma sugestão.
Algebra, só serve com expressões regulares??
Vc poderia usar o substring juntamente com o indexOf da classe String para pegar o texto entre o “:” e a “,”
String s = "ALUNO: AQUI PODE TER QUALQUER NOME , teste testando";
//+ 2 para retirar o : e um espaço em branco
System.out.println(s.substring(s.indexOf(':') + 2, s.indexOf(',')));
Algebra, só serve com expressões regulares??Vc poderia usar o substring juntamente com o indexOf da classe String para pegar o texto entre o “:” e a “,”
String s = "ALUNO: AQUI PODE TER QUALQUER NOME , teste testando"; //+ 2 para retirar o : e um espaço em branco System.out.println(s.substring(s.indexOf(':') + 2, s.indexOf(',')));
Pensei nisso tbm marco, mais depois que eu vi que ele queria “termine antes de uma virgula ou de qualquer letra de caixa baixa”.
Tentei utilizar expressões regulares no substring e não consegui.
Consegui criando 2 padrões e testando um de cada vez. 
Acho que o que você precisava é isso:
String pattern = "AQUI:(.*), esta";
String originalContent = "AQUI: BLABLABLA, esta";
String newContent = originalContent.replaceFirst(pattern, "$1");
System.out.println( newContent );
Acho que o que você precisava é isso:String pattern = "AQUI:(.*), esta"; String originalContent = "AQUI: BLABLABLA, esta"; String newContent = originalContent.replaceFirst(pattern, "$1"); System.out.println( newContent );
Acredito que isso não resolverá o problema da forma como Algebra quer.
Como ele disse anteriormente, ele procura uma solução utlizando o padrão regex para pegar o conteúdo entre os ":" e uma vírgula ou qualquer letra em caixa baixa.
Algebra se puder poste o código, no qual vc conseguiu resolver esse problema
Tive que fazer 2 pattern
Pattern pat1 = Pattern.compile ("PROFESSOR:[.\n]*+(.*?)[,|[a-z]]");
Pattern pat2 = Pattern.compile ("ALUNO:[.\n]*+(.*?)[,|[a-z]]");
Já que isso não funcionou…
Pattern pat = Pattern.compile ("PROFESSOR:|ALUNO:[.\n]*+(.*?)[,|[a-z]]");