Co jsou regulární výrazy v Javě?

V Javě je Regex nebo Regulární výraz aplikačním programovým rozhraním, které pomáhá při definování vzoru pro vyhledávání, manipulaci a úpravy řetězců. Regulární výrazy Java se široce používají při ověřování hesel a e-mailů. Tyto výrazy poskytuje balíček java.util.regex a skládá se z 1 rozhraní a 3 tříd.

Tyto tři třídy jsou:

  1. Vzor: Pomáhá při definování vzorů.
  2. Matcher: Použití vzorů, pomáhá při provádění zápasových operací.
  3. PatternSyntaxException: Pomáhá při určování chyby syntaxe.

Java Regex má jedno rozhraní známé jako MatchResultInterface, které pomáhá při určování výsledku operace shody regulárního výrazu.

Syntaxe regulárního výrazu v Javě

Nyní se podívejme, jak psát regulární výraz v Javě pomocí programu.

Kód:

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

Výstup:

Běžně používané metody v regulárních výrazech

V regulárních výrazech existují 3 běžně používané metody. Oni jsou,

1. Metody indexu

Metody indexu nabízejí hodnoty indexu, které pomáhají přesně ukázat, kde byla shoda nalezena v řetězci zadaném jako vstup.

Metoda Popis
Start()Vrací se počáteční index předchozí shody.
start (int skupina)Vzhledem k předchozí předchozí operaci zápasu je zachycena a vrácena subsekvence.
konec()Odsazení po přiřazení posledního znaku je vráceno.
Konec (int skupina)Vzhledem k tomu, že skupina byla předchozí subsekcí operace operace, je zachycena a odsazena po shodě s poslední vrácenou postavou.

2. Studijní metody

Studijní metody kontrolují řetězec zadaný jako vstup a je vrácena logická hodnota označující, zda je vzor nalezen nebo ne.

Metoda Popis
lookingAt ()Porovnejte posloupnost zadanou jako vstup se vzorkem od začátku regionu.
nalézt()Vyhledá další subsekvenci sekvence zadané jako vstup oproti vzoru od začátku oblasti.
najít (int start)Resetuje matcher a poté najde další subsekvenci sekvence dané jako vstup proti vzoru ze zadaného indexu.
zápasy()Shoduje obsah se vzorkem.

3. Metody nahrazení

Metody, které se používají k nahrazení textu v řetězci.

Metoda Popis
appendReplacement (StringBuffer s, Náhrada řetězce)Bude proveden krok bez připojení a nahrazení.
appendTail (StringBuffer s)Bude proveden krok připojení a nahrazení terminálu.
nahraditVšechny (nahrazení řetězce)Nahraďte veškerou subsekvenci sekvence zadané jako vstup, která se shoduje se vzorkem, nahrazovacím řetězcem.
quoteReplacement (String s)Za uvedený řetězec bude vrácen doslovný náhradní řetězec.
ReplaFirst (String Replacement)Nahraďte první subsekvenci sekvence zadané jako vstup, která odpovídá vzoru nahrazovacím řetězcem.

Jak definovat regulární výraz v Javě?

Regulární výraz lze definovat několika způsoby. Oni jsou:

1. Literály

Předpokládejme, že řetězec „hai“ musí být prohledán v textu „hai“. To lze provést pomocí syntaxe.

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

2. Třídy postav

Odpovídá každému jednotlivému znaku v textu zadanému jako vstup proti více povoleným znakům ve třídě znaků. Následují různé konstrukty třídy.

Třída znaků Vysvětlení
(pqr)Shoduje se s textem, pokud obsahuje p, q nebo r a měl by být pouze jednou.
(pqr)označuje negaci, a proto se zde vezme jeden znak kromě p, q nebo r.
(a-zA-Z)a až z a A až Z jsou brány v úvahu.
(ad (ps))a až d nebo p až s.
(a-dm-p)Spojení obou rozsahů.
(az && (pqr))a až z a (p, q nebo r).
(az && (pq))a až z a také p, q nejsou brány v úvahu.
(ad-z)Provádí odčítání.
(az && (mp))a až z a ne m až p.

3. Metaznaky

V regulárním výrazu fungují metachar postavy jako krátké kódy. Následuje několik běžně používaných metacharakterů.

Regulární výraz Vysvětlení
\ dJakákoli číslice od 0 do 9. Lze ji také psát jako (0-9).
\ DJakákoli jiná číslice od 0 do 9. Lze ji také napsat (0-9).
\ sZnak mezery nebo (\ t \ n \ x0B \ f \ r).
\ SZnak bez mezer nebo (\ s).
\ wZnak slova nebo (a-zA-Z_0-9).
\ WNeslovný znak nebo (\ w).
\ bHranice slova.
\ BNeslovná hranice.

4. Kvantifikátory

Kvantifikátory uvádějí počet výskytů každého znaku, který se má shodovat s řetězcem.

Regulární výraz Vysvětlení
A?Vyskytuje se jednou nebo vůbec.
A*A nastane 0 nebo vícekrát.
A +K A dochází 1 nebo vícekrát.
A (n)A nastává přesně n krát.
A (n, )A nastane n nebo více než to.
A (n, m)K A dochází nejméně nkrát, ale nemělo by být více než m krát.

Jak vytvořit regulární výraz v Javě?

Nyní se podívejme na program java s výše uvedenými regulárními výrazy.

Kód:

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

Výstup:

Závěr

Java Regular Expressions jsou široce používány pro aplikace v reálném čase, jako je ověření hesla a e-mailu. Tyto výrazy jsou API, které definují vzory a nabízejí prohledávání, úpravy a několik dalších operací v řetězci.

Doporučené články

Toto je průvodce pravidelnými výrazy v Javě. Zde diskutujeme o tom, jak vytvářet, jak definovat a běžně používané metody regulárních výrazů v javě. Další informace naleznete také v následujících článcích -

  1. Top 3 nejlepší kompilátory v Javě
  2. Regulární výrazy v JavaScriptu - vlastnosti a metody
  3. Vývoj aplikací Java
  4. Metody pole v Javě s příklady
  5. Funkce Regex v Pythonu (příklad)

Kategorie: