Conseils sur la syntaxe des expressions régulières Java : mode gourmand et mode non gourmand
Lorsque vous utilisez les expressions régulières Java, vous rencontrez souvent des situations où vous devez faire correspondre autant de caractères que possible ou aussi peu de caractères que possible. Cela nécessite d'utiliser le mode gourmand et le mode non gourmand pour contrôler la méthode de correspondance. Cet article présentera ces deux modes en détail et donnera des exemples de code spécifiques.
1. Mode gourmand
Le mode gourmand est la méthode de correspondance par défaut. En mode gourmand, l'expression régulière correspond à autant de caractères que possible jusqu'à ce que la condition de correspondance ne soit plus remplie.
Par exemple, nous avons le texte suivant :
String text = "abc abc abc";
Nous voulons faire correspondre le "abc" au milieu. Vous pouvez utiliser le code suivant :
Pattern pattern = Pattern.compile(".*");
Matcher matcher = pattern.matcher(text);
while (matcher.find()) {
System.out.println(matcher.group());
}
La sortie le résultat est "abc abc abc", car ".*" utilise le mode gourmand et correspondra à autant de caractères que possible.
2. Mode non gourmand
Le mode non gourmand est obtenu en ajoutant "?" après le qualificatif de mode gourmand. En mode non gourmand, l'expression régulière correspond au moins de caractères possible jusqu'à ce que la condition de correspondance soit remplie.
Ce qui suit est un exemple de code utilisant le mode non gourmand :
Pattern pattern = Pattern.compile(".*?");
Matcher matcher = pattern.matcher(text);
System.out.println(matcher.group());}Le résultat de sortie est "abc". En effet, ".*?" utilise un mode non gourmand et ne correspond qu'au plus petit caractère qui remplit les conditions. 3. Scénarios d'application du mode gourmand et du mode non gourmand
1. Scénarios d'application du mode gourmand
Le mode gourmand convient généralement aux situations où il est nécessaire de faire correspondre autant de caractères que possible. Par exemple, si nous voulons faire correspondre toutes les balises d'un document HTML, le mode gourmand par défaut peut faire correspondre toutes les balises à la fois.
Paragraphe 1
Paragraphe 2
";Modèle pattern = Pattern.compile("<.>");
Matcher matcher = pattern.matcher(html);
while (matcher.find()) {
System.out.println(matcher.group());}Le résultat de sortie est "< ;h1>", "", "
", "
", "", "
". 2. Scénarios d'application du mode non gourmandLe mode non gourmand convient généralement aux situations où il est nécessaire de faire correspondre le moins de caractères possible. Par exemple, si nous voulons faire correspondre tous les mots d'une phrase, le mode non gourmand par défaut peut faire correspondre les mots un par un.
Pattern pattern = Pattern.compile("bw+?b");
Matcher matcher = pattern.matcher(sentence);
while (matcher.find()) {
System.out.println(matcher.group());}Les résultats de sortie sont "Je", "amour" et "codage". En résumé, le mode gourmand et le mode non gourmand sont très utiles dans les expressions régulières Java. Selon les besoins spécifiques, choisir le mode approprié permet de mieux réaliser la correspondance et d'extraire les informations requises. J'espère que les exemples de code de cet article pourront aider les lecteurs à mieux comprendre et appliquer le mode gourmand et le mode non gourmand.
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!