Como combinar "qualquer personagem" na expressão regular?

deve corresponder o seguinte:

AAA123
ABCDEFGH123
XXXX123

Posso fazer: ".*123"?

 170
Author: Wiktor Stribiżew, 2010-05-26

6 answers

Podes, sim. Deve funcionar.
  • {[0] } = qualquer char
  • \. = o carácter actual dos pontos
  • .? = .{0,1} = corresponder a qualquer char zero ou uma vez
  • .* = .{0,} = corresponder a qualquer valor zero ou mais vezes
  • .+ = .{1,} = corresponder a qualquer 'char' uma ou mais vezes
 413
Author: Delan Azabani, 2010-05-26 12:31:13

Sim, isso irá funcionar, mas lembre-se que . não irá corresponder às linhas novas a menos que passe a opção DOTALL ao compilar a expressão:

Pattern pattern = Pattern.compile(".*123", Pattern.DOTALL);
Matcher matcher = pattern.matcher(inputStr);
boolean matchFound = matcher.matches();
 43
Author: BlueRaja - Danny Pflughoeft, 2010-05-26 14:17:03
Existem muitas ferramentas sofisticadas de teste e desenvolvimento de expressões regulares, mas se você quiser apenas um arnês de teste simples em Java, Aqui está um para você brincar com:
    String[] tests = {
        "AAA123",
        "ABCDEFGH123",
        "XXXX123",
        "XYZ123ABC",
        "123123",
        "X123",
        "123",
    };
    for (String test : tests) {
        System.out.println(test + " " +test.matches(".+123"));
    }

Agora você pode facilmente adicionar novas testas e experimentar novos padrões. Diverte-te a explorar a regex.

Ver também

 9
Author: polygenelubricants, 2010-05-26 13:30:36

Usar o padrão . para corresponder a qualquer carácter uma vez, .* para corresponder a qualquer caractere zero ou mais vezes, .+ para corresponder a qualquer caractere, uma ou mais vezes.

 7
Author: thr, 2010-05-26 12:31:02

Não, * irá corresponder a zero ou mais caracteres. Deve usar +, que corresponde a um ou mais.

Esta expressão pode funcionar melhor para ti.: [A-Z]+123
 3
Author: Huusom, 2015-07-27 09:54:41
Tenta a regex .{3,}. Isto irá corresponder a todos os caracteres esperar uma nova linha.
 2
Author: Ravi Shekhar, 2017-03-22 04:59:47