Maison > Java > javaDidacticiel > Pourquoi `String.matches()` ne fonctionne-t-il pas comme prévu avec les expressions régulières ?

Pourquoi `String.matches()` ne fonctionne-t-il pas comme prévu avec les expressions régulières ?

Linda Hamilton
Libérer: 2024-11-26 05:18:10
original
446 Les gens l'ont consulté

Why Doesn't `String.matches()` Work as Expected with Regular Expressions?

String.matches() ne correspond pas à l'expression régulière attendue

Lorsque vous essayez de faire correspondre un modèle spécifique à l'aide de String.matches("[a-z ]"), il est surprenant de constater que cela ne fonctionne pas comme prévu, même si la chaîne contient des minuscules lettres.

Explication :

La méthode String.matches() en Java est conçue pour déterminer si la chaîne d'entrée entière correspond à l'expression régulière fournie. Dans ce cas, l'expression « [a-z] » tente de faire correspondre une seule lettre minuscule. Cependant, le code vérifie chaque chaîne du tableau de mots, dont aucune ne commence par une lettre minuscule.

Solution :

Pour faire correspondre un motif dans une chaîne, un doit utiliser les classes Pattern et Matcher. La classe Pattern compile l'expression régulière dans un objet Matcher, qui peut ensuite être utilisé pour vérifier les correspondances dans la chaîne d'entrée.

Voici une version modifiée du code qui utilise Pattern et Matcher pour trouver des correspondances :

Pattern p = Pattern.compile("[a-z]+");
for(String s:words)
{
    Matcher m = p.matcher(s);
    if (m.find())
    {
        System.out.println(s);
    }
}
Copier après la connexion

Ce code imprime désormais correctement "dkoe".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal