📜  expression régulière téléphone java (1)

📅  最后修改于: 2023-12-03 15:00:40.610000             🧑  作者: Mango

Expression Régulière Téléphone en Java

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.

Syntaxe

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

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

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" |

Exemple

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ères

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