J'ai ce petit bout de code
String[] words = {"{apf","hum_","dkoe","12f"};
for(String s:words)
{
if(s.matches("[a-z]"))
{
System.out.println(s);
}
}
Censé imprimer
dkoe
mais ça n'imprime rien !
J'ai ce petit bout de code
String[] words = {"{apf","hum_","dkoe","12f"};
for(String s:words)
{
if(s.matches("[a-z]"))
{
System.out.println(s);
}
}
Censé imprimer
dkoe
mais ça n'imprime rien !
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
48 votes
Java
matches
met un ^ au début et un $ à la fin des regex pour vous. Doncmatches("[a-z]")
cherchera en fait /^[a-z]$/ à la place.0 votes
Oui @Robino vous avez tout à fait raison.
3 votes
Sûrement, si vous attendez
matches
pour rechercher toute occurrence de[a-z]
alors il devrait correspondre à tous les éléments ? Je ne m'attendrais pas à ce quematches
pour vérifier chaque caractère individuellement par rapport à la regex.0 votes
@Robino : Où cette fonctionnalité est-elle décrite/documentée ?
0 votes
@Toru Sur la page de la docs java pour String.Matches - où d'autre ? Une recherche occasionnelle sur Google de "java string matches documentation" révèle, dans le premier résultat, la phrase "str.matches(regex) yields exactly the same result as the expression". Le mot important est "exactement".
0 votes
@PhilHibbs Oui, c'était aussi mon attente !