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.
[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