
Čo sú regulárne výrazy v jazyku Java?
V jazyku Java je Regex alebo Regulárny výraz aplikačným programovým rozhraním, ktoré pomáha pri definovaní vzoru za účelom vyhľadávania, manipulácie a úpravy reťazcov. Regulárne výrazy Java sa široko používajú pri overovaní hesiel a e-mailov. Tieto výrazy poskytuje balík java.util.regex a skladá sa z 1 rozhrania a 3 tried.
Tieto tri triedy sú:
- Vzor: Pomáha pri definovaní vzorov.
- Matcher: Použitie vzorov, pomáha pri vykonávaní zápasu.
- PatternSyntaxException: Pomáha pri označení chyby syntaxe.
Java Regex má jedno rozhranie známe ako MatchResultInterface, ktoré pomáha pri určovaní výsledku operácie zhody regulárneho výrazu.
Syntax regulárneho výrazu v Jave
Teraz sa pozrime, ako napísať regulárny výraz v jazyku Java pomocou 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ýkon:

Bežne používané metódy v regulárnych výrazoch
V regulárnych výrazoch existujú 3 bežne používané metódy. Oni sú,
1. Metódy indexu
Metódy indexu ponúkajú hodnoty indexu, ktoré pomáhajú presne ukazovať, kde sa našla zhoda v reťazci zadanom ako vstup.
| metóda | popis | 
| štart () | Vráti sa počiatočný index predchádzajúcej zhody. | 
| začiatok (int skupina) | Vzhľadom na predchádzajúcu zhodu operácie subsekvencie je zachytená a vrátená. | 
| koniec() | Ofset po zhode s posledným znakom je vrátený. | 
| Koniec (int skupina) | Vzhľadom na predchádzajúcu zhodu operácie subsekvencie je zachytená a posunutá po zhode jej posledného vráteného znaku. | 
2. Študijné metódy
Študijné metódy skontrolujú reťazec zadaný ako vstup a vráti sa booleovská hodnota označujúca, či sa vzor našiel alebo nie.
| metóda | popis | 
| pozerajúc sa na() | Priraďte sekvenciu zadanú ako vstup k vzorke od začiatku oblasti. | 
| Nájsť() | Nájde ďalšiu subsekvenciu sekvencie zadanej ako vstup oproti vzoru od začiatku oblasti. | 
| nájsť (int start) | Vynuluje zápas a potom nájde ďalšiu subsekvenciu sekvencie zadanej ako vstup oproti vzoru zo zadaného indexu. | 
| zápasy() | Zhoduje obsah so vzorom. | 
3. Metódy výmeny
Metódy, ktoré sa používajú na nahradenie textu v reťazci.
| metóda | popis | 
| appendReplacement (StringBuffer s, Náhrada reťazca) | Bude uskutočnený krok bez pripojenia a výmeny. | 
| appendTail (StringBuffer s) | Bude vykonaný krok pripojenia a výmeny terminálu. | 
| nahradiť všetko (nahradiť reťazec) | Nahraďte všetky subsekvencie postupnosti zadané ako vstup, ktoré sa zhodujú so vzorkou, náhradným reťazcom. | 
| citátReplacement (String s) | Za uvedený reťazec bude vrátený doslovný náhradný reťazec. | 
| ReplaFirst (String náhradné) | Nahraďte prvú subsekvenciu sekvencie zadanej ako vstup, ktorá sa zhoduje so vzorkou, náhradným reťazcom. | 
Ako definovať regulárny výraz v Jave?
Existuje niekoľko spôsobov, ako je možné definovať regulárny výraz. Oni sú:
1. Literály
Predpokladajme, že reťazec „hai“ sa musí vyhľadať v texte „hai“. Dá sa to urobiť pomocou syntaxe.
Pattern.matches("hai", "hai")
2. Triedy znakov
Zhoduje sa s každým jednotlivým znakom v texte zadaným s viacerými povolenými znakmi v triede znakov. Nasledujú rôzne konštrukty triedy.
| Trieda znakov | vysvetlenie | 
| (PQR) | Zhoduje sa s textom, ak obsahuje p, q alebo r a mal by byť iba raz. | 
| (PQR) | označuje negáciu, a preto sa tu berú jednotlivé znaky s výnimkou písmen p, q alebo r. | 
| (A-zA-Z) | a až z a A až Z. | 
| (Ad (ps)) | a až d alebo p až s. | 
| (A-dm-p) | Spojenie oboch rozsahov. | 
| (Az && (PQR)) | a až z a (p, q alebo r). | 
| (Az && (pq)) | a až z a tiež p, q sa nezohľadňujú. | 
| (Ad-z) | Vykoná odpočítanie. | 
| (Az && (mp)) | a až z a nie m až p. | 
3. Metaznaky
Metaznaky sa v regulárnom výraze správajú ako krátke kódy. Nasleduje niekoľko bežne používaných metaznakov.
| Regulárny výraz | vysvetlenie | 
| \ d | Akákoľvek číslica od 0 do 9. Môže byť tiež zapísaná ako (0-9). | 
| \ D | Akákoľvek číslica od 0 do 9. Môže byť tiež zapísaná ako (0-9). | 
| \ s | Znak medzery alebo (\ t \ n \ x0B \ f \ r). | 
| \ S | Znak bez medzier alebo znakov (\ s). | 
| \ w | Znak slova alebo (a-zA-Z_0-9). | 
| \ W | Neslovný znak alebo (\ w). | 
| \ b | Hranica slova. | 
| \ B | Bezslovná hranica. | 
4. Kvantifikátory
Kvantifikátory uvádzajú počet výskytov každého znaku, ktorý sa má zhodovať s reťazcom.
| Regulárny výraz | vysvetlenie | 
| znak? | Vyskytuje sa raz alebo vôbec. | 
| A * | A nastane 0 alebo viackrát. | 
| A + | A nastane 1 alebo viackrát. | 
| A (n) | A nastane presne n krát. | 
| A (n) | A sa vyskytuje n alebo viac ako to. | 
| A (n, m) | A sa vyskytuje najmenej n-krát, ale nemalo by byť viac ako m-krát. | 
Ako vytvoriť regulárny výraz v Jave?
Teraz sa pozrime na program java s vyššie uvedenými regulárnymi výrazmi.
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ýkon:

záver
Regulárne výrazy Java sa široko používajú pre aplikácie v reálnom čase, ako je napríklad overenie hesla a e-mailu. Tieto výrazy sú rozhrania API, ktoré definujú vzory a ponúkajú vyhľadávanie, úpravy a niekoľko ďalších operácií v reťazci.
Odporúčané články
Toto je príručka pre regulárne výrazy v Jave. Tu diskutujeme o tom, ako vytvoriť, ako definovať a bežne používané metódy regulárnych výrazov v jave. Ďalšie informácie nájdete aj v nasledujúcich článkoch -
- Top 3 najlepšie kompilátory v Jave
- Regulárne výrazy v JavaScripte - vlastnosti a metódy
- Vývoj aplikácií Java
- Metódy poľa v Java s príkladmi
- Funkcie regulárnych výrazov v Pythone (príklad)