Les expressions régulières sont des modèles qui nous aident à rechercher des séquences spécifiques dans un texte. En Java, ils sont utilisés avec les classes du package java.util.regex.
Avec regex, nous pouvons trouver des modèles, remplacer du texte et valider les entrées sans ajouter trop de code.
Passons en revue quelques symboles regex courants et ce qu'ils font :
Caractères littéraux : L'expression régulière la plus simple est simplement du texte brut. bonjour correspond à toute occurrence de bonjour dans une chaîne.
Caractères génériques :
.: Correspond à n'importe quel caractère (h.llo correspond à hello, hallo, hxllo).
Ensembles de caractères :
[abc] : correspond à n'importe quel caractère entre parenthèses (h[aeiou]llo correspond à bonjour, bonjour).
[a-z] : correspond à n'importe quelle lettre minuscule de a à z.
Quantificateurs :
* : correspond à zéro ou plusieurs occurrences de la lettre derrière elle (go*gle correspond à google, ggle, goooooooogle).
: Correspond à une ou plusieurs occurrences (go gle correspond à google, gooogle mais pas ggle).
? : correspond à zéro ou à une occurrence de la lettre derrière elle (la couleur correspond à la fois à la couleur et à la couleur).
Ancres :
^ : Indique le début d'une ligne (^hello correspond à toute ligne commençant par bonjour).
$ : indique la fin d'une ligne (world$ correspond à toute ligne se terminant par world).
Groupes :
(abc) : regroupe plusieurs caractères en une seule unité ((ha) correspond à ha, haha, hahaha).
Caractères d'échappement :
Certains caractères (comme . ou *) ont une signification particulière, alors préfixez-les avec une barre oblique inverse pour les utiliser littéralement. Par exemple, . correspondra à un point littéral.
Pattern : compile l'expression régulière et la fait correspondre dans un texte.
Matcher : applique le modèle à un texte spécifique et aide à trouver des correspondances.
Voici un exemple rapide de la façon dont ces classes fonctionnent ensemble :
importer java.util.regex.*;
import java.util.regex.*; public class RegexBasicsDemo { public static void main(String[] args) { String text = "hxllo hallo hbllllllo hello"; Pattern pattern = Pattern.compile("h.llo"); Matcher matcher = pattern.matcher(text); while (matcher.find()) { System.out.println("Wildcard match found: " + matcher.group()); } } }
Ce qui sera imprimé :
import java.util.regex.*; public class RegexReplaceExample { public static void main(String[] args) { String text = "hello hzllo hallo hillo"; Pattern pattern = Pattern.compile("h[aeiou]llo"); Matcher matcher = pattern.matcher(text); String result = matcher.replaceAll("hi"); System.out.println("Original text: " + text); System.out.println("Text after replacement: " + result); } }
Ce qui sera imprimé :
Méthodes Java Regex utiles
En tant que développeur Java, j'en suis venu à vraiment apprécier les regex pour leur puissance avec le traitement de texte. Il est étonnant de voir comment une ligne d’expression régulière bien conçue peut gérer des tâches qui autrement nécessiteraient un bloc entier de code. Pour une correspondance simple, l'expression régulière est parfaite : elle est concise, efficace et idéale pour des choses comme la validation de formats ou l'extraction de modèles.
Mais je sais que tout le monde ne ressent pas la même chose. Les expressions rationnelles peuvent être loin d’être intuitives, et lorsque les modèles commencent à devenir complexes, la lisibilité en souffre. Il est facile de créer des modèles qui fonctionnent comme par magie, mais qu’il est presque impossible à quiconque (ou même à vous-même, plus tard, après votre retour de belles vacances) de comprendre en un coup d’œil. Les modèles complexes peuvent rapidement devenir du code « en écriture seule ».
Dans ces situations, j'ai trouvé préférable de diviser la validation en étapes plus petites et plus simples. Cela rend les choses plus claires et permet aux autres de suivre plus facilement la logique. Bien que les expressions régulières soient un outil très précieux en Java, je pense qu’il est préférable de l’utiliser avec un peu de retenue, en particulier dans les environnements d’équipe. Après tout, écrire du code maintenable signifie penser à la prochaine personne qui le lira.
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!