String: erro ao atribuir valor - Expressões Regulares

2 respostas
A
import java.util.regex.*;

public class teste {

public void identificaEConverte (String frase, String comeco, String fim){

    Pattern p = Pattern.compile(comeco + "\\s.*" + fim);
    Matcher m = p.matcher(frase);
    
    
    while (m.find()) {
    System.out.println(m.group());
    }

}
public static void main (String[] args) {
teste a1 = new teste();

a1.identificaEConverte("olá grupo guj, oi", "olá", "guj");
   
}
}

Pessoal, tenho o código acima, funcionando perfeitamente. Meu problema é eu quero salvar o valor do m.group() em uma string, só que eu não estou conseguindo. Alguém pode me ajudar? Eu tentei salvar apenas o valor de m, só que se for assim ele salva toda a sintaxe do código. Apenas (eu acho) o .group() me retorna o valor "pronto" do resultado.

Ao usar o código:
String a = m.group();
System.out.print(a);
Ele compila blz, mas quando eu executo ele da o erro:
Exception in thread "main" java.lang.IllegalStateException: No match found

Alguém sabe como salvar o valor de m.group() na String a?

Muito obrigado

2 Respostas

T
import java.util.regex.*;

public class Teste89 {

	public String identificaEConverte (String frase, String comeco, String fim){
		String ret = "";
		Pattern p = Pattern.compile(Pattern.quote (comeco) + "(\\s.*)" + Pattern.quote (fim));
		Matcher m = p.matcher(frase);
		if (m.find()) {
			// return m.group (1); // se você quiser apenas "grupo"
			return m.group(); // se quiser "olá grupo guj"
		}
		return ret;
	}
	public static void main (String[] args) {
		Teste89  a1 = new Teste89 ();
		System.out.println (a1.identificaEConverte("olá grupo guj, oi", "olá", "guj"));
	}
}
A
thingol:
import java.util.regex.*;

public class Teste89 {

	public String identificaEConverte (String frase, String comeco, String fim){
		String ret = "";
		Pattern p = Pattern.compile(Pattern.quote (comeco) + "(\\s.*)" + Pattern.quote (fim));
		Matcher m = p.matcher(frase);
		if (m.find()) {
			// return m.group (1); // se você quiser apenas "grupo"
			return m.group(); // se quiser "olá grupo guj"
		}
		return ret;
	}
	public static void main (String[] args) {
		Teste89  a1 = new Teste89 ();
		System.out.println (a1.identificaEConverte("olá grupo guj, oi", "olá", "guj"));
	}
}

Vlw pela ajuda, mas já resolvi, era só atribuir o valor dentro do if que ele funciona!

Obrigado!

Criado 1 de junho de 2009
Ultima resposta 1 de jun. de 2009
Respostas 2
Participantes 2