📅  最后修改于: 2023-12-03 15:00:40.610000             🧑  作者: Mango
Les expressions régulières sont des séquences de caractères qui permettent de décrire des motifs dans des chaînes de caractères. En Java, l'utilisation des expressions régulières est rendue possible grâce à la classe Pattern
. Cette classe permet de définir une expression régulière, de la compiler en un objet Pattern
et de l'utiliser pour chercher des occurrences d'un motif dans une chaîne de caractères.
Les expressions régulières sont construites à partir de caractères spéciaux, également appelés métacaractères, et de caractères littéraux. Les métacaractères ont une signification spéciale et sont utilisés pour construire des motifs plus complexes.
Les caractères littéraux sont les caractères qui représentent eux-mêmes. Par exemple, pour rechercher la chaîne de caractères "Java" dans une autre chaîne de caractères, on peut utiliser l'expression régulière suivante :
String regex = "Java";
Les caractères spéciaux sont ceux qui ont une signification spéciale dans une expression régulière. Voici la liste des caractères spéciaux les plus couramment utilisés :
| Métacaractère | Signification | |:-------------:|:------------:| | . | N'importe quel caractère | | \w | Un caractère de mot (a, b, c, ..., A, B, C, ..., 0, 1, 2, ..., _)| | \W | Un caractère qui n'est pas un caractère de mot | | \d | Un chiffre (0, 1, 2, ...) | | \D | Un caractère qui n'est pas un chiffre | | \s | Un caractère blanc (espace, tabulation, retour à la ligne) | | \S | Un caractère qui n'est pas un caractère blanc | | [abc] | L'un des caractères "a", "b" ou "c" | | [^abc] | N'importe quel caractère sauf "a", "b" ou "c" |
Dans cet exemple, nous allons utiliser une expression régulière pour valider des numéros de téléphone français. Le numéro de téléphone est considéré valide s'il est sous la forme suivante : 01 23 45 67 89
, 01.23.45.67.89
ou 01-23-45-67-89
.
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class TelephoneValidator {
public static boolean isValid(String telephone) {
// Expression régulière pour valider les numéros de téléphone français
String regex = "^(0|\\+33)[\\s\\-.]?[1-9](\\s?[\\d]{2}){4}$";
// Compilation de l'expression régulière en un objet Pattern
Pattern pattern = Pattern.compile(regex);
// Recherche d'occurrences dans la chaîne de caractères
Matcher matcher = pattern.matcher(telephone);
// Retourne true si une occurrence est trouvée, false sinon
return matcher.find();
}
public static void main(String[] args) {
String telephone1 = "0123456789";
System.out.println(telephone1 + " : " + isValid(telephone1));
String telephone2 = "01-23-45-67-89";
System.out.println(telephone2 + " : " + isValid(telephone2));
String telephone3 = "+33 1 23 45 67 89";
System.out.println(telephone3 + " : " + isValid(telephone3));
}
}
Dans cet exemple, nous avons défini une expression régulière pour valider les numéros de téléphone français. L'expression régulière se compose des éléments suivants :
^
: correspond au début de la chaîne de caractères(0|\\+33)
: correspond soit à "0" soit à "+33"[\\s\\-.]?
: correspond à un caractère blanc, un tiret ou un point éventuellement présent[1-9]
: correspond à un chiffre de 1 à 9(\\s?[\\d]{2})
: correspond à un espace éventuel suivi de deux chiffres{4}
: correspond à l'ensemble précédent répété quatre fois$
: correspond à la fin de la chaîne de caractèresNous avons également créé une méthode isValid
qui prend en paramètre une chaîne de caractères et qui renvoie true si elle correspond à l'expression régulière définie, false sinon.
Enfin, nous avons utilisé la méthode isValid
dans la méthode main
pour valider trois numéros de téléphone différents.