Retornar substrings através de regex

2 respostas
marcio0

Estou com um a dúvida aqui. Quero saber se posso recuperar de uma string, todos as substrings que se encaixem em um dado regex.
Por exemplo na string “assssd ddd afffd”, quero que ele me retorne tudo o que se encaixa em “a.*d”, no caso seria “assssd” e “afffd”.
É possível fazer isso?

2 Respostas

M

Sim, é possível. Olhe um exemplo:

public static void main(String[] args) {
        String frase = "assssd ddd afffd olá mundo ad";
        Pattern p = Pattern.compile("(a\w*d)");
        Matcher m = p.matcher(frase);
        while (m.find()) {
            System.out.println(m.group());
        }
    }

Perceba que está expressão regular considera “ad” como válido. Caso você não queira isso (ou seja, deve haver algo entre a primeira e a última letra), troque a expressão regular para “(a\w+d)”.

marcio0

marcobiscaro2112:
Sim, é possível. Olhe um exemplo:

public static void main(String[] args) {
        String frase = "assssd ddd afffd olá mundo ad";
        Pattern p = Pattern.compile("(a\w*d)");
        Matcher m = p.matcher(frase);
        while (m.find()) {
            System.out.println(m.group());
        }
    }

Perceba que está expressão regular considera “ad” como válido. Caso você não queira isso (ou seja, deve haver algo entre a primeira e a última letra), troque a expressão regular para “(a\w+d)”.

Valeu, cara. Obrigado pela dica da expressão também.

Criado 13 de dezembro de 2009
Ultima resposta 13 de dez. de 2009
Respostas 2
Participantes 2