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:
- Vzor: Pomáhá při definování vzorů.
- Matcher: Použití vzorů, pomáhá při provádění zápasových operací.
- 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í |
\ d | Jakákoli číslice od 0 do 9. Lze ji také psát jako (0-9). |
\ D | Jakákoli jiná číslice od 0 do 9. Lze ji také napsat (0-9). |
\ s | Znak mezery nebo (\ t \ n \ x0B \ f \ r). |
\ S | Znak bez mezer nebo (\ s). |
\ w | Znak slova nebo (a-zA-Z_0-9). |
\ W | Neslovný znak nebo (\ w). |
\ b | Hranice slova. |
\ B | Neslovná 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 -
- Top 3 nejlepší kompilátory v Javě
- Regulární výrazy v JavaScriptu - vlastnosti a metody
- Vývoj aplikací Java
- Metody pole v Javě s příklady
- Funkce Regex v Pythonu (příklad)