Maison > Java > javaDidacticiel > Maîtriser les compétences en mode gourmand et non gourmand des expressions régulières Java

Maîtriser les compétences en mode gourmand et non gourmand des expressions régulières Java

PHPz
Libérer: 2023-12-26 14:33:14
original
1019 Les gens l'ont consulté

Maîtriser les compétences en mode gourmand et non gourmand des expressions régulières Java

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());
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

}

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());
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

}

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.

String html = "

Titre 1

Paragraphe 1

Titre 2

Paragraphe 2

";

Modèle pattern = Pattern.compile("<.*?>");
Matcher matcher = pattern.matcher(html);
while (matcher.find()) {

System.out.println(matcher.group());
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion

}

Le résultat de sortie est "< ;h1>", "", "

", "

", "

", "

", "

", "

".

2. Scénarios d'application du mode non gourmand

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

String phrase = "J'adore coder";

Pattern pattern = Pattern.compile("bw+?b");
Matcher matcher = pattern.matcher(sentence);
while (matcher.find()) {

System.out.println(matcher.group());
Copier après la connexion
Copier après la connexion
Copier après la connexion
Copier après la connexion
}

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal