Regelmessige uttrykk i Java | Forklart

Regelmessige uttrykk i Java | Forklart
Et vanlig uttrykk (også kjent som regex) gir et API som definerer mønstrene for å søke eller manipulere strengene. I Java, en forhåndsdefinert pakke Java.util.regex kan brukes til å jobbe med de vanlige uttrykkene. Den består av tre klasser: a Mønster klasse for å definere et mønster, a Matcher klasse for å søke i et mønster, og en PatternsyntaxException klasse for å indikere en syntaksfeil i en regex mønster.

Denne oppskrivningen presenterer en grundig forståelse av følgende konsepter:

  • Mønsteroppretting ved bruk av kompileringsmetode
  • Mønstermatching ved bruk av Matcher -metoden
  • Hva er flagg i vanlige uttrykk
  • Hva er vanlige uttrykksmønstre
  • Hva er metakarakter i vanlige uttrykk
  • Hva er kvantifiserere i vanlige uttrykk
  • Praktisk implementering av vanlige uttrykk i Java

Så la oss komme i gang!

Mønsteroppretting ved bruk av kompilering () metode

For å lage et mønster, må vi først påkalle kompilere() metode for Mønster klasse og som et resultat vil det returnere et mønsterobjekt. De kompilere() Metoden kan ta to parametere: den første for mønsteret som skal søkes, og den andre er valgfritt og kan brukes til å spesifisere et flagg.

Hva er mønstre i vanlige uttrykk

I den første parameteren, kompilere() Metode spesifiserer et mønster som skal søkes. Noen ofte brukte søkemønstre er listet opp nedenfor:

  1. [-] her "-" representerer forskjellige karakterer, og hele mønsteret i.e. [-] Beskriver som finner en karakter mellom alternativene som er gitt i parentesene.
  2. [^-] beskriver å finne en karakter som ikke er en del av det medfølgende mønsteret.
  3. [0-9], beskriver å finne et tall mellom 0 til 9.

Hva er flagg i vanlige uttrykk

Flagg er valgfrie parametere til de vanlige uttrykkene og kan brukes til å spesifisere deres (vanlige uttrykk) søkeoppførsel. For eksempel kan case_insenstive brukes til å utføre søket uavhengig av brevet, i.e. store bokstaver eller små bokstaver.

Mønstermatching ved bruk av Matcher () -metode

Mønsteret som returneres av kompilere() metoden vil bli tolket av Matcher () Metode for å utføre kampoperasjonen over strengen.

Hva er metakarakter i vanlige uttrykk

Java gir flere Metacharacters som har noen spesiell betydning og er nyttige for å definere søkekriteriene:

Metacharacters Beskrivelse
\ d Brukes til å finne et siffer
\ b Brukes til å finne en kamp i starten eller slutten av ordet
$ Brukes til å finne kampen på slutten av strengen
^ Brukes til å finne kampen i starten av strengen
\ S Søk etter de hvite rommene
| Søk etter en kamp fra flere alternativer som er atskilt med '|' skilt
. Brukes til å matche en enkelt forekomst av en karakter

Hva er kvantifiserere i vanlige uttrykk

Kvantifiserer spesifiserer antall forekomster som skal matches, noen ofte brukte kvantifiserere er listet opp nedenfor:

Kvantifiserere Beskrivelse
EN+ A forekommer minst en gang
EN* A oppstår null eller mer tid
EN? A oppstår enten null tid eller en gang
A n Et forekommer n antall ganger
A n, A oppstår n ganger eller mer enn n ganger
A x, y A oppstår mellom det medfølgende området i.e. A forekommer minst x ganger, men mindre enn y ganger

Praktisk implementering av vanlige uttrykk i Java

La oss implementere de ovennevnte konseptene i et praktisk scenario for en dyp forståelse.

Eksempel

I kodebiten nedenfor søkte vi etter ordet “Linuxhint” i en setning ved hjelp av et vanlig uttrykk:

publicClassRegexPexample
publicStaticVoidmain (String [] args)
Mønster Pat = mønster.kompilere ("linuxhint", mønster.Case_insensitive);
Matcher Match = Pat.Matcher ("Velkommen til Linuxhint.com ");
Boolean Found = Match.finne();
if (funnet)
System.ute.Println ("Match funnet vellykket");
annet
System.ute.println ("match ikke funnet");


Opprinnelig opprettet vi gjenstanden for Mønster klasse, så spesifiserer vi et ord som vi ønsker å søke og et flagg “case_insensitive” i kompilere() metode. Deretter bruker vi Matcher () Metode for å utføre kampoperasjonen over strengen.

Utgangen autentiserer at samsvarer blir funnet vellykket uavhengig av saksfølsomhet.

Konklusjon

De vanlige uttrykkene er ikke annet enn en sekvens av tegn som definerer søkemønstrene. I Java brukes vanlige uttrykk for å søke, redigere og manipulere en streng. For å lage et mønster, må vi først påkalle kompilere() metode for Mønster klasse og følgelig vil den returnere et mønster som vil bli tolket av Matcher () Metode for å utføre kampoperasjonen over strengen. Dessuten gir Java flere Metacharacters som er nyttige i å definere søkekriteriene og Kvantifiserere For å spesifisere antall forekomster som skal matches.