Koji su regularni izrazi na Javi?
U Java , Regex ili Regular Expression je sučelje aplikacijskog programa koje pomaže u definiranju uzorka radi pretraživanja, manipulacije i uređivanja nizova. Java regularni izrazi široko se koriste u provjeri lozinki i e-poruka. Ove izraze pruža paket java.util.regex i sastoji se od 1 sučelja i 3 klase.
Tri razreda su:
- Uzorak: Pomaže u definiranju uzoraka.
- Matcher: Korištenje obrazaca pomaže u obavljanju operacija podudaranja.
- PatternSyntaxException: Pomaže u ukazivanju na sintaksu.
Java Regex ima jedno sučelje poznato kao MatchResultInterface koje pomaže u određivanju rezultata operacije regularnog izraza.
Sintaksa regularnog izražavanja u Javi
Pogledajmo sada kako uz program napisati regularni izraz na Javi.
Kodirati:
//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);
) )
Izlaz:
Uobičajeno korištene metode u pravilnim izrazima
Postoje 3 uobičajene metode u pravilnim izrazima. Oni su,
1. Metode indeksiranja
Indeksne metode nude vrijednosti indeksa koje pomažu u preciznom prikazivanju mjesta na kojem je podudaranje pronađeno u nizu koji je dan kao ulaz.
način | Opis |
početak() | Vraća se početni indeks prethodnog meča. |
start (int grupa) | S obzirom na prethodnu utakmicu grupe, naknadna snimka se hvata i vraća. |
kraj() | Offset nakon podudaranja zadnjeg znaka se vraća. |
Kraj (int grupa) | S obzirom na prethodnu operaciju utakmice, naknadni unos se snima i nadoknađuje nakon vraćanja zadnjeg znaka. |
2. Metode proučavanja
Metode studije provjeravaju niz koji je dan kao ulaz i vraća se Booleova vrijednost koja pokazuje je li uzorak pronađen ili ne.
način | Opis |
gledati u() | Usporedite redoslijed dat kao unos prema obrascu s početka regije. |
pronaći() | Pronalazi sljedeću sekvencu niza dat kao unos protiv obrasca s početka regije. |
pronađi (int početak) | Ponovno postavlja matcher i zatim pronalazi sljedeću sekvencu niza koji je dan kao unos prema uzorku iz navedenog indeksa. |
utakmice () | Odgovara sadržaju prema obrascu. |
3. Metode zamjene
Metode koje se koriste za zamjenu teksta u nizu.
način | Opis |
appendReplacement (StringBuffer s, zamjena niza) | Provest će se ne-terminalni dodatak i korak zamjene. |
appendTail (StringBuffer s) | Provest će se korak dodavanja i zamjene terminala. |
fillAll (zamjena niza) | Zamijenite svu naknadnu sekvencu danu kao ulaz koji se podudara s uzorkom zamjenskim nizom. |
quoteReplacement (stringovi) | Vratit će se doslovni zamjenski niz za spomenuti niz. |
Zamijeni prvo (zamjena niza) | Zamijenite prvu naknadnu sekvencu koja je dana kao ulaz koji odgovara obrascu zamjenskim nizom. |
Kako definirati regularni izraz u Javi?
Postoji nekoliko načina na koje se može definirati pravilan izraz. Oni su:
1. Literali
Pretpostavimo da u tekstu "hai" treba potražiti niz "hai". To se može učiniti pomoću sintakse.
Pattern.matches("hai", "hai")
2. Klase likova
Odgovara svakom pojedinom znaku u tekstu navedenom kao unos protiv više dozvoljenih znakova u klasi znakova. Slijede razni konstrukti klase.
Klasa likova | Obrazloženje |
(PQR) | Podudara tekst ako sadrži ili p, q ili r i trebao bi biti samo jednom. |
(PQR) | označava negaciju i zbog toga su ovdje uzeti pojedinačni znakovi osim p, q ili r. |
(A-zA-Z) | a do z i od A do Z smatraju se. |
(Ad (PS)) | a do d, ili p do s. |
(A-dm-p) | Spoj oba raspona. |
(Az && (PQR)) | a do z i (p, q ili r). |
(Az && (PQ)) | a do z i također, p, q se ne smatraju. |
(tesati drvo) | Izvodi oduzimanje. |
(Az && (tt)) | a do z a ne m do str. |
3. Metakarakteri
Metakarakteri djeluju poput kratkih kodova u regularnom izrazu. Slijede neki od uobičajenih metagrafa.
Redovna ekspresija | Obrazloženje |
\ d | Bilo koja znamenka od 0 do 9. Može se zapisati i kao (0-9). |
\ D | Bilo koja znamenka od 0 do 9. Može se zapisati i kao (0-9). |
\ s | Znak bjeline ili (\ t \ n \ x0B \ f \ r). |
\ S | Non znak bjeline ili (\ s). |
\ w | Znak riječi ili (a-zA-Z_0-9). |
\ W | Znak koji nije riječ ili (\ w). |
\ b | Granica riječi. |
\ B | Granica bez riječi. |
4. Kvantifikatori
Kvantifikatori spominju broj pojavljivanja svakog znaka koji se podudaraju sa nizom.
Redovna ekspresija | Obrazloženje |
A | Javlja se jednom ili uopće ne. |
A * | A događa se 0 ili više puta. |
A + | A događa se 1 ili više puta. |
Naznačen time daje (n) | A događa se točno n puta. |
Naznačen time daje (n, ) | A događa se n ili više od toga. |
Naznačen time daje (n, m) | A događa se najmanje n puta, ali ne bi trebao biti veći od m puta. |
Kako stvoriti regularni izraz u Javi?
Sada, pogledajmo java program s gore navedenim redovitim izrazima.
Kodirati:
//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
)
)
Izlaz:
Zaključak
Java regularni izrazi se široko koriste za aplikacije u stvarnom vremenu, kao što su provjera zaporke i e-pošte. Ovi izrazi su API-ji koji definiraju obrasce i nude pretraživanje, uređivanje i nekoliko drugih operacija u nizu.
Preporučeni članci
Ovo je vodič za regularne izraze na Javi. Ovdje ćemo razgovarati o stvaranju, kako definirati i najčešće korištene metode regularnih izraza u javi. Možete pogledati i sljedeće članke da biste saznali više -
- Najbolja 3 sastavljača Java
- Redovni izrazi u JavaScript-u - Svojstva i metode
- Java razvoj aplikacija
- Array metode u Javi s primjerima
- Regex funkcije u Pythonu (primjer)