Heim  >  Artikel  >  Java  >  Reguläre Ausdrücke in Java

Reguläre Ausdrücke in Java

WBOY
WBOYOriginal
2024-08-30 15:33:26272Durchsuche

In Java ist Regex oder regulärer Ausdruck eine Anwendungsprogrammschnittstelle, die dabei hilft, ein Muster zum Suchen, Bearbeiten und Bearbeiten von Zeichenfolgen zu definieren. Reguläre Java-Ausdrücke werden häufig bei der Validierung von Passwörtern und E-Mails verwendet. Diese Ausdrücke werden vom Paket java.util.regex bereitgestellt und bestehen aus 1 Schnittstelle und 3 Klassen.

Die drei Klassen sind:

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

  • Muster: Hilft bei der Definition von Mustern.
  • Matcher: Die Verwendung von Mustern hilft bei der Durchführung von Match-Operationen.
  • PatternSyntaxException: Hilft bei der Angabe eines Syntaxfehlers.

Java Regex verfügt über eine Schnittstelle namens MatchResultInterface, die bei der Bestimmung des Ergebnisses der Übereinstimmungsoperation des regulären Ausdrucks hilft.

Syntax des regulären Ausdrucks in Java

Sehen wir uns an, wie man mit Hilfe eines Programms einen regulären Ausdruck in Java schreibt.

Code:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples {
public static void main(String args[]){
String A = " Happiness is " + " within yourself";
String B = ".*within.*";
// checks whether the string A contains the word 'within' and stores the result in matchcheck
boolean matchcheck = Pattern.matches(B, A);
//prints the result
System.out.println("Is there any string 'within' in the text ? \n " + matchcheck);
}   }

Ausgabe:

Reguläre Ausdrücke in Java

Häufig verwendete Methoden in regulären Ausdrücken

Es gibt drei häufig verwendete Methoden in regulären Ausdrücken.

1. Indexmethoden

Indexmethoden bieten Indexwerte, die dabei helfen, genau anzuzeigen, wo die Übereinstimmung in der als Eingabe angegebenen Zeichenfolge gefunden wurde.

Method Description
start() The previous match’s start index is returned.
start(int group) Given the group’s previous match operation, the subsequence is captured and returned.
end() The offset after matching the last character is returned.
End(int group) Given the group’s previous match operation, subsequence is captured and offset after matching its last character returned.
Methode

Beschreibung

start() Der Startindex des vorherigen Spiels wird zurückgegeben.
start(int group) Angesichts der vorherigen Übereinstimmungsoperation der Gruppe wird die Teilsequenz erfasst und zurückgegeben.
end() Der Offset nach dem Abgleich mit dem letzten Zeichen wird zurückgegeben.
End(int group) Angesichts der vorherigen Übereinstimmungsoperation der Gruppe wird die Teilsequenz erfasst und nach dem Abgleich mit dem letzten zurückgegebenen Zeichen versetzt.
2. Lernmethoden
Method Description
lookingAt() Match the sequence given as input against the pattern from the beginning of the region.
find() Finds the next subsequence of the sequence given as input against the pattern from the beginning of the region.
find(int start) Resets the matcher and then finds the next subsequence of the sequence given as input against the specified index pattern.
matches() Matches content against the pattern.

Studienmethoden überprüfen die als Eingabe angegebene Zeichenfolge und es wird ein boolescher Wert zurückgegeben, der angibt, ob das Muster gefunden wurde oder nicht.

Methode

Method Description
appendReplacement(StringBuffer s, String replacement) A non-terminal append and replacement step will be implemented.
appendTail(StringBuffer s) A terminal append and replacement step will be implemented.
replaceAll(String replacement) Replace all subsequence of the sequence given as input that matches against the pattern with a replacement string.
quoteReplacement(String s) A literal replacement string will be returned for the mentioned string.
replaceFirst(String replacement) Replace the first subsequence of the sequence given as input that matches the pattern with a replacement string.
Beschreibung
lookingAt() Vergleichen Sie die als Eingabe angegebene Sequenz mit dem Muster vom Anfang der Region.
find() Sucht die nächste Teilsequenz der als Eingabe angegebenen Sequenz anhand des Musters vom Anfang der Region.
find(int start) Setzt den Matcher zurück und findet dann die nächste Teilsequenz der als Eingabe angegebenen Sequenz anhand des angegebenen Indexmusters.
matches() Übereinstimmt den Inhalt mit dem Muster.
3. Ersatzmethoden Methoden, die zum Ersetzen von Text in einer Zeichenfolge verwendet werden.
Methode Beschreibung
appendReplacement(StringBuffer s, String-Ersetzung) Ein nicht-terminaler Anhänge- und Ersetzungsschritt wird implementiert.
appendTail(StringBuffer s) Ein Schritt zum Anhängen und Ersetzen des Terminals wird implementiert.
replaceAll(String-Ersetzung) Ersetzen Sie alle Teilsequenzen der als Eingabe angegebenen Sequenz, die mit dem Muster übereinstimmen, durch eine Ersatzzeichenfolge.
quoteReplacement(String s) Für die erwähnte Zeichenfolge wird eine literale Ersatzzeichenfolge zurückgegeben.
replaceFirst(String-Ersetzung) Ersetzen Sie die erste Teilsequenz der als Eingabe angegebenen Sequenz, die mit dem Muster übereinstimmt, durch eine Ersatzzeichenfolge.

How to Define Regular Expression in Java?

There are several ways in which a regular expression can be defined.

1. Literals

Suppose a string “hai” has to be searched in the text “hai”.

It can be done using syntax.

Pattern.matches("hai", "hai")

2. Character Classes

It matches every single character in the text given as input against multiple permitted characters in the character class.

The following are the various class constructs.

Character Class Explanation
[pqr] Matches the text if it contains either p, q or r, and it should be only once.
[^pqr] ^ denotes the negation, and due to that, here, single character except for p, q, or r are taken.
[a-zA-Z] a to z and A to Z are considered.
[a-d[p-s]] a to d, or p to s.
[a-dm-p] Union of both ranges.
[a-z&&[pqr]] a to z and (p, q or r).
[a-z&&[^pq]] a to z and also, p, q are not considered.
[ad-z] Performs the subtraction.
[a-z&&[^m-p]] a to z and not m to p.

3. Metacharacters

Metacharacters act like shortcodes in the regular expression.

The following are some of the metacharacters commonly used.

Regular Expression Explanation
\d Any digit from 0 to 9. It can be written as [0-9] as well.
\D Any non-digit from 0 to 9. It can be written as [^0-9] as well.
\s Whitespace character or [\t\n\x0B\f\r].
\S Non whitespace character or [^\s].
\w Word character or [a-zA-Z_0-9].
\W Non-word character or [^\w].
\b Word boundary.
\B Non-word boundary.

4. Quantifiers

Quantifiers mention the count of occurrence of each character to match against the string.

Regular Expression Explanation
a? It occurs once or not at all.
A* A occurs 0 or more times.
A+ A occurs 1 or more times.
A{n} A occurs exactly n times.
A{n,} A occurs n or more than that.
A{n,m} A occurs at least n times, but it should not be more than m times.

How to Create Regular Expression in Java?

Now, let us see a java program with the above-mentioned regular expressions.

Code:

//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples {
public static void main(String args[]){
String str="hai";
// Returns true if string 1 matches string 2
System.out.println("Returns true if 'hai' matches 'Hai' :"+
Pattern.matches(str, "Hai")); //False
//Returns true if Hai or hai matches parameter 2
System.out.println("Returns true if 'Hai' or 'hai' matches 'Hai' : "+
Pattern.matches("[Hh]ai", "Hai")); //True
// Returns true if the string matches exactly "ann" or "Ann" or "jak" or "Jak"
System.out.println("Returns true if the string matches exactly 'ann' or 'Ann' or 'jak' or 'Jak' with 'Ann' : "+
Pattern.matches("[aA]nn|[jJ]ak", "Ann"));//True
//returns true if the string contains "with" at any place in the string
System.out.println("returns true if the string contains 'with' in the string 'within' : " +
Pattern.matches(".*with.*", "within"));//True
// returns true if the '9448anna' does not have number in the beginning
System.out.println( "returns true if the '9448anna' does not have number in the beginning : "+
Pattern.matches("^[^\\d].*", "9448anna")); //False
System.out.println("returns true if the '9448anna' does not have number in the beginning : " +
Pattern.matches("^[^\\d].*", "anna9448")); //True
}
}

Output:

Reguläre Ausdrücke in Java

Conclusion – Regular Expressions in Java

Java Regular Expressions are widely used for real-time applications such as password and email verification. These expressions are APIs that define patterns and offer searching, editing, and several other operations in the string.

Das obige ist der detaillierte Inhalt vonReguläre Ausdrücke in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Hashing-Funktion in JavaNächster Artikel:Hashing-Funktion in Java