Heim  >  Artikel  >  Java  >  Beispiel für ein Java-Programm: Demonstriert Escape-Zeichen in regulären Ausdrücken

Beispiel für ein Java-Programm: Demonstriert Escape-Zeichen in regulären Ausdrücken

王林
王林nach vorne
2023-09-19 09:01:03724Durchsuche

Beispiel für ein Java-Programm: Demonstriert Escape-Zeichen in regulären Ausdrücken

Hier demonstrieren wir die Escape-Zeichen in Regex mithilfe eines Java-Programms. Bevor wir uns mit diesem Thema befassen, machen wir uns mit den Begriffen „Escape-Zeichen“ und „reguläre Ausdrücke“ vertraut.

Reguläre Ausdrücke

Es ist eine Abkürzung für regulären Ausdruck. Dabei handelt es sich um eine API, die es Benutzern ermöglicht, Zeichenfolgenmuster zum Suchen, Ändern und Bearbeiten von Zeichenfolgen zu definieren. Reguläre Ausdrücke werden häufig verwendet, um eingeschränkte Zeichenfolgenfelder wie E-Mail-Authentifizierung und Passwörter zu definieren. Das Paket java.util.regex enthält reguläre Ausdrücke.

Escape-Zeichen

Wenn einem Zeichen ein Backslash () vorangestellt ist, umfasst es Zahlen, Buchstaben und Satzzeichen. Der Compiler behandelt diese Zeichen unterschiedlich und solche Zeichen werden Escape-Zeichen genannt.

Einige Beispiele sind:

n – In diesem Beispiel wird es verwendet, um dem Text eine neue Zeile hinzuzufügen.

’ – Hiermit wird dem Text ein einfaches Anführungszeichen hinzugefügt.

So entkommen Sie Zeichen

Um Sonderzeichen in regulären Ausdrücken wie Punkt (.), Nummernzeichen (#) usw. zu finden, müssen diese Zeichen, die für den regulären Ausdruck eine besondere Bedeutung haben, mit Escapezeichen versehen werden.

Wenn beispielsweise der Punkt (.) in einem regulären Ausdruck nicht mit Escapezeichen versehen ist, stimmt er mit einem beliebigen Zeichen überein und führt zu unklaren Ergebnissen.

In Java Regex können Zeichen auf zwei verschiedene Arten maskiert werden, auf die wir weiter unten im Detail eingehen werden.

  • Verwenden Sie Q- und E-Escapezeichen

  • Verwenden Sie Backslash(), um zu entkommen

Methode 1. Verwenden Sie Q und E, um zu entkommen

Um Zeichen zu maskieren, können wir Q- und E-Escape-Sequenzen verwenden.

Die Escape-Sequenz beginnt mit dem Buchstaben Q und endet mit dem Buchstaben E.

Zwischen den Buchstaben Q und E werden alle Zeichen maskiert.

Wird normalerweise verwendet, um eine große Anzahl von Zeichen zu maskieren.

Beispiel 1

Das folgende Programm zeigt, wie die Verwendung des Punkt-Escape-Zeichens in einem regulären Ausdruck funktioniert.

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

Ausgabe

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

Im obigen Java-Programm wird die Verwendung von Q und E in regulären Ausdrücken gezeigt, um eine Zeichenfolge mit Escapezeichen zu versehen.

Erstellen Sie zwei Eingabezeichenfolgen, s1 und s2, und zwei Musterobjekte, p1 und p2, wobei p1 Q und E verwendet, um das Punktzeichen „.“ zu maskieren, während p2 das Punktzeichen nicht maskiert.

Es werden vier Matcher-Objekte erstellt, nämlich m1, m2, m3 und m4, die zum Abgleichen der Eingabezeichenfolge mit dem Pattern-Objekt verwendet werden.

Abschließend zeigt das Programm den booleschen Wert „true“ an, wenn die Musterobjekte p1 und p2 mithilfe der Matcher-Objekte m1, m2, m3 und m4 mit den Eingabezeichenfolgen s1 und s2 übereinstimmen. Wenn sie nicht übereinstimmen, zeigt das Programm den booleschen Wert „false“ an.

Methode 2. Verwenden Sie einen Backslash (//) als Escape-Zeichen

Backslash kann verwendet werden, um Zeichen zu maskieren.

Da es sich bei dem Backslash-Zeichen um ein eigenständiges Zeichen handelt, benötigen wir zwei Backslashes.

Die Zeichen werden dann maskiert.

Verwenden Sie dies häufig, um Zeichen am Ende einer Zeichenfolge zu maskieren.

Die chinesische Übersetzung von

Beispiel 2

lautet:

Beispiel 2

Das folgende Programm zeigt, wie das Escape-Zeichen in regulären Ausdrücken mithilfe eines Backslashs (//) funktioniert.

// 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());
    }
}

Ausgabe

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

Im obigen Java-Code wird ein Backslash verwendet, um Sonderzeichen in einer Zeichenfolge abzugleichen, was die Verwendung von Escapezeichen in regulären Ausdrücken demonstriert.

Hier werden zwei Eingabezeichenfolgen erstellt, nämlich s1 und s2, und zwei Musterobjekte p1 und p2, wobei p1 das Punktzeichen „.“ durch einen Backslash maskiert, während p2 das Punktzeichen nicht maskiert.

Dann werden vier Matcher-Objekte erstellt, nämlich m1, m2, m3 und m4, die zum Abgleichen der Eingabezeichenfolge mit dem Pattern-Objekt verwendet werden.

Abschließend gleicht das Programm die Eingabezeichenfolgen s1 und s2 mithilfe der Matcher-Objekte m1, m2, m3 und m4 ab und zeigt einen booleschen Wert „true“ an, wenn die Musterobjekte p1 und p2 mit der Eingabezeichenfolge übereinstimmen, und einen booleschen Wert, wenn sie nicht übereinstimmen, „false“.

In diesem Artikel wird erklärt, wie man Zeichen in regulären Ausdrücken maskiert. Der Artikel beginnt mit der Erörterung der Begriffe „reguläre Ausdrücke“ und „Escape-Zeichen“ und stellt die beiden Methoden und ihre Implementierung vor, um ein klares Verständnis dieses Themas zu vermitteln.

Das obige ist der detaillierte Inhalt vonBeispiel für ein Java-Programm: Demonstriert Escape-Zeichen in regulären Ausdrücken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen