Maison  >  Article  >  Java  >  Exemple de programme Java : illustre les caractères d'échappement dans les expressions régulières

Exemple de programme Java : illustre les caractères d'échappement dans les expressions régulières

王林
王林avant
2023-09-19 09:01:03739parcourir

Exemple de programme Java : illustre les caractères déchappement dans les expressions régulières

Ici, nous allons démontrer les caractères d'échappement dans Regex via un programme Java. Avant d'aborder ce sujet, familiarisons-nous avec les termes « caractères d'échappement » et « expressions régulières ».

Expressions régulières

C'est une abréviation pour expression régulière. Il s'agit d'une API qui permet aux utilisateurs de définir des modèles de chaînes pour rechercher, modifier et éditer des chaînes. Les expressions régulières sont souvent utilisées pour définir des champs de chaîne restreints, tels que l'authentification par courrier électronique et les mots de passe. Le package java.util.regex contient des expressions régulières.

Échapper aux personnages

Lorsqu'un caractère est précédé d'une barre oblique inverse (), il comprend des chiffres, des lettres et des signes de ponctuation. Le compilateur traite ces caractères différemment et ces caractères sont appelés caractères d'échappement.

Quelques exemples incluent :

n - Dans cet exemple, il est utilisé pour ajouter une nouvelle ligne au texte.

' - Il est utilisé pour ajouter un guillemet simple au texte ici.

Comment échapper aux personnages

Afin de faire correspondre les caractères spéciaux dans les expressions régulières, tels que le point (.), le signe dièse (#), etc., ces caractères qui ont une signification particulière pour l'expression régulière doivent être échappés.

Par exemple, si le point (.) n'est pas échappé dans une expression régulière, il correspondra à n'importe quel caractère et produira des résultats peu clairs.

Dans Java Regex, les caractères peuvent être échappés de deux manières différentes, que nous examinerons en détail ci-dessous.

  • Utilisez Q et E pour vous échapper

  • Utilisez la barre oblique inverse() pour vous échapper

Méthode 1. Utilisez Q et E pour vous échapper

Pour échapper aux caractères, nous pouvons utiliser les séquences d'échappement Q et E.

La séquence d'échappement commence par la lettre Q et se termine par la lettre E.

Entre les lettres Q et E, tous les caractères sont échappés.

Habituellement utilisé pour échapper à un grand nombre de caractères.

Exemple 1

Le programme suivant montre comment fonctionne l'utilisation du caractère d'échappement point dans une expression régulière.

<span style="font-size: 13.125px;">// Java Program to demonstrate how to escape characters in Java
// Regex Using \Q and \E for escaping

import java.io.*;
import java.util.regex.*;
//creation of a class named Regexeg1
public class Regexeg1 {
    // Main method
    public static void main(String[] args) {
        // providing two strings as inputs
        String s1 = "Tutorials.point";
        String s2 = "Tutorialspoint";
        //creation of an object of Pattern class with dot escaped
        </span>Pattern p1 = Pattern.compile("<span>\</span>\Q.<span>\</span>\E");
        //creation of an object of Pattern class without escaping the dot
        Pattern p2 = Pattern.compile(".");
        // Matchers for every combination of patterns and strings
        Matcher m1 = p1.matcher(s1);
        Matcher m2 = p1.matcher(s2);
        Matcher m3 = p2.matcher(s1);
        Matcher m4 = p2.matcher(s2);
        // find whether p1 and p2 match and display the Boolean value as a result
        System.out.println("p1 matches s1: " + m1.find());
        System.out.println("p1 matches s2: " + m2.find());
        System.out.println("p2 matches s1: " + m3.find());
        System.out.println("p2 matches s2: " + m4.find());
    }
}
</span>

Sortie

p1 matches s1: true
p1 matches s2: false
p2 matches s1: true
p2 matches s2: true

Dans le programme Java ci-dessus, il montre l'utilisation de Q et E dans les expressions régulières pour échapper une chaîne de caractères.

Créez deux chaînes d'entrée, s1 et s2, et deux objets Pattern, p1 et p2, où p1 utilise Q et E pour échapper au caractère point ".", tandis que p2 n'échappe pas au caractère point.

Quatre objets Matcher sont créés, à savoir m1, m2, m3 et m4, qui sont utilisés pour faire correspondre la chaîne d'entrée avec l'objet Pattern.

Enfin, le programme affiche la valeur booléenne true si les objets Pattern p1 et p2 correspondent aux chaînes d'entrée s1 et s2 à l'aide des objets Matcher m1, m2, m3 et m4, et s'ils ne correspondent pas, la valeur booléenne false.

Méthode 2. Utilisez la barre oblique inverse (//) comme caractère d'échappement

Backslash peut être utilisé pour échapper des caractères.

Puisque la barre oblique inverse est un caractère à part entière, nous avons besoin de deux barres obliques inverses.

Les personnages seront alors échappés.

Utilisez-le souvent pour échapper des caractères à la fin d'une chaîne.

La traduction chinoise de

Exemple 2

est :

Exemple 2

Le programme suivant montre comment fonctionne l'échappement de caractères dans les expressions régulières à l'aide d'une barre oblique inverse (//).

// Java Program to demonstrate how to escape characters in Java
// Regex using backslash (\) for escaping
import java.io.*;
import java.util.regex.*;
//creation of a class named Regexeg2
public class Regexeg2 {
    public static void main (String[] args) {
        // providing two strings as inputs
        String s1="Tutorials.point";
        String s2="Tutorialspoint";
        //creation of an object of Pattern class with dot escaped
        Pattern p1=Pattern.compile("<span>\</span>\.");
        //creation of an object of Pattern class without dot escaped
        Pattern p2=Pattern.compile(".");
        //Four matchers for each pattern string combination
        Matcher m1=p1.matcher(s1);
        Matcher m2=p1.matcher(s2);
        Matcher m3=p2.matcher(s1);
        Matcher m4=p2.matcher(s2);
        // find whether p1 and p2 match and display the boolean value as a result
        System.out.println("p1 matches s1: "+m1.find());
        System.out.println("p1 matches s2: "+m2.find());
        System.out.println("p2 matches s1: "+m3.find());
        System.out.println("p2 matches s2: "+m4.find());
    }
}

Sortie

p1 matches s1: true
p1 matches s2: false
p2 matches s1: true
p2 matches s2: true

Dans le code Java ci-dessus, la barre oblique inverse est utilisée pour faire correspondre les caractères spéciaux dans une chaîne, démontrant l'utilisation de caractères d'échappement dans les expressions régulières.

Ici, deux chaînes d'entrée sont créées, à savoir s1 et s2, et deux objets Pattern p1 et p2, où p1 échappe au caractère point "." via une barre oblique inverse, tandis que p2 n'échappe pas au caractère point.

Ensuite, quatre objets Matcher sont créés, à savoir m1, m2, m3 et m4, qui sont utilisés pour faire correspondre la chaîne d'entrée avec l'objet Pattern.

Enfin, le programme fait correspondre les chaînes d'entrée s1 et s2 à l'aide des objets Matcher m1, m2, m3 et m4, et affiche une valeur booléenne vraie si les objets Pattern p1 et p2 correspondent à la chaîne d'entrée, et une valeur booléenne s'ils ne correspondent pas. FAUX.

Cet article explique comment échapper des caractères dans les expressions régulières. L'article commence par discuter des termes expressions régulières et caractères d'échappement, et présente les deux méthodes et leur implémentation pour avoir une compréhension claire de ce sujet.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer