Datautvinning eller validering er et viktig aspekt av hvert programmeringsspråk. En av de mest populære måtene for datavalidering er å bruke regulære uttrykk. bruker dissevanlige uttrykk for å beskrive et mønster av tegn. Denne artikkelen på Java Regex vil liste opp de forskjellige metodene for å bruke uttrykk i følgende rekkefølge:
- Hva er vanlige uttrykk?
- Hva er Java Regex?
- Matcherklasse
- Mønster klasse
- Regex karakterklasse
- Regex-kvantifiserere
- Regex Metacharacters
La oss komme i gang!
Hva er vanlige uttrykk?
TIL Vanlig uttrykk er en sekvens av tegn som konstruerer et søkemønster. Når du søker etter data i en tekst, kan du bruke dette søkemønsteret til å beskrive det du leter etter.
Et vanlig uttrykk kan være en enkelt karakter eller et mer komplisert mønster. Den kan brukes til alle typer tekstsøk og tekstutskiftningsoperasjoner. Et Regex-mønster består av enkle tegn, for eksempel / abc / , eller en kombinasjon av enkle og spesialtegn, for eksempel / ab * c / eller /eksempel(d+).d*/ .
Hva er Java Regex?
De Java Regex er et API som er vant til definere et mønster for søking eller manipulering . Det brukes mye for å definere begrensningen for strenger som passord og validering av e-post.
Det er forskjellige metoder for å bruke Java Regex. Så la oss gå videre og se på de forskjellige uttrykkene.
Matcherklasse
Denne klassen brukes til å utføre kampoperasjoner på en tegnsekvens. Tabellen nedenfor representerer ulike metoder i Matcher-klassen.
Metode | Beskrivelse |
---|---|
boolske kamper () | Tester om det gitte regulære uttrykket samsvarer med mønsteret |
boolsk funn () | Brukes til å finne neste uttrykk som samsvarer med mønsteret |
boolsk funn (int start) | Søker i neste uttrykk som samsvarer med mønsteret fra det gitte startnummeret |
Strenggruppe () | Brukes til å returnere den matchede undersøkelsen |
int start () | Returnerer startindeksen for den matchede undersekvensen |
int end () | Returnerer sluttindeksen for den matchede undersekvensen |
int groupCount () | Returnerer totalt antall matchede undersøkelser |
Mønster klasse
Mønster klasse er en samlet versjon av vanlig uttrykk som brukes til å definere mønsteret for regex motor.
hvordan du setter vei i java
Metode | Beskrivelse |
---|---|
statisk mønsterkompilering (String regex) | Den kompilerer den gitte regexen og returnerer forekomsten av mønsteret |
Matcher treff (CharSequence-inngang) | Den brukes til å lage en matcher som samsvarer med den gitte inngangen med mønsteret |
statiske boolske kamper (String regex, CharSequence input) | Det fungerer som en kombinasjon av kompilerings- og matchingsmetoder. Den kompilerer det regulære uttrykket og matcher den gitte inngangen med mønsteret |
Streng [] split (CharSequence input) | Brukes til å dele den gitte innspillstrengen rundt treff i et gitt mønster |
Strengmønster () | Hjelper med å returnere regex-mønsteret |
La oss nå ta et lite eksempel for å forstå hvordan du skriver et vanlig uttrykk.
importer java.util.regex. * public class RegexExample {public static void main (String [] args) {Pattern pattern = Pattern.compile ('. xx.') Matcher matcher = pattern.matcher ('AxxB') System.out .println ('String samsvarer med gitt Regex - + matcher.matches ())}}
I dette tilfellet bruker den mønster og matcher internt regex-klasser for å gjøre behandlingen, men åpenbart,det reduserer kodelinjene. Mønsterklasse inneholder også samsvarsmetode som tar regex og input Streng som argument og returnerer et boolsk resultat etter å ha matchet dem. Så koden fungerer bra for å matche input med et vanlig uttrykk i Java. Derfor vil utdataene være sanne som vist nedenfor.
Produksjon:
ekte
La oss nå se noen flere kategorier av Java Regular Expressions.
Regex karakterklasse
Tabellen nedenfor representerer den forskjellige karakterklassekombinasjonen.
Karakterklasse | Beskrivelse |
---|---|
[abc] | a, b eller c (enkel klasse) |
[^ abc] | Ethvert tegn unntatt a, b eller c (negasjon) |
[a-zA-Z] | a til z eller A til Z, inkludert (rekkevidde) |
[a-d [m-p]] | a til d, eller m til p: [a-dm-p] (union) |
[a-z && [def]] | d, e eller f (kryss) |
[a-z && [^ bc]] | a til z, bortsett fra b og c: [ad-z] (subtraksjon) |
[a-z && [^ m-p]] | a til z, og ikke m til p: [a-lq-z] (subtraksjon) |
Eksempel:
importer java.util.regex. * public class CharacterExample {public static void main (String args []) {// false (not x or y or z) System.out.println (Pattern.matches ('[xyz]', 'wbcd')) // true (blant x eller y eller z) System.out.println (Pattern.matches ('[xyz]', 'x')) // false (x og y kommer mer enn en gang) System .out.println (Pattern.matches ('[xyz]', 'xxyyyyyz'))}}
Regex-kvantifiserere
Kvantifisererne angir antall forekomster av et tegn. Tabellen nedenfor representerer forskjellige kvantifiseringsmidler.
Regex | Beskrivelse |
---|---|
X? | X forekommer en gang eller ikke i det hele tatt |
X + | X forekommer en eller flere ganger |
X * | X forekommer null eller flere ganger |
X {n} | X forekommer bare n ganger |
X {n,} | X forekommer n eller flere ganger |
X og Z} | X forekommer minst y ganger, men mindre enn z ganger |
Eksempel:
importer java.util.regex. * public class Eksempel {public static void main (String args []) {System.out.println ('? quantifier ....') // (a eller y eller z kommer en gang) System.out.println (Pattern.matches ('[ayz]?', 'A')) // output: true System.out.println (Pattern.matches ('[ayz]?', 'Aaa')) / / (ay og z kommer mer enn én gang) System.out.println (Pattern.matches ('[ayz]?', 'ayyyyzz')) // output: false // (a kommer mer enn en gang) System. out.println (Pattern.matches ('[ayz]?', 'amnta')) // output: false // (a eller y eller z må komme en gang) System.out.println (Pattern.matches ('[ ayz]? ',' ay ')) // output: false System.out.println (' + quantifier .... ') // (a eller y eller z en eller flere ganger) System.out.println (Mønster .matches ('[ayz] +', 'a')) // output: true // (a kommer mer enn en gang) System.out.println (Pattern.matches ('[ayz] +', 'aaa' )) // outpu: true // (a eller y eller z kommer mer enn en gang) System.out.println (Pattern.matches ([amn] + ',' aayyyzz ')) // output: true // (z og t samsvarer ikke med mønsteret) System.out.println (Pat tern.matches ('[ayz] +', 'aammta')) // output: false System.out.println ('* quantifier ....') // (a eller y eller z kan komme null eller flere ganger ) System.out.println (Pattern.matches ('[ayz] *', 'ayyyza')) // output: true}}
I utgangspunktet vil den søke etter den matchende kvantifisereren og matche søkeresultatet.
Regex Metacharacters
Metategnene for regulære uttrykk fungerer som kortkoder. La oss ta en titt på tabellen nedenfor for å forstå forskjellige typer metategn.
Regex | Beskrivelse |
---|---|
. | Det kan være hvilken som helst karakter (matcher eventuelt terminator) |
d | Representerer alle sifre, mindre enn [0-9] |
D | Representerer ikke-sifret, kort for [^ 0-9] |
s | Representerer et hvilket som helst mellomromstegn, forkortelse for [tnx0Bfr] |
S | Det kan være et tegn som ikke er mellomrom, kort for [^ s] |
i | Det kan være et ordtegn, kort for [a-zA-Z_0-9] |
I | Representerer tegn som ikke er ord, forkortelse for [^ w] |
b | Representerer en ordgrense |
B | Det er en ikke-ordgrense |
Eksempel:
import java.util.regex. * public class MetacharExample {public static void main (String args []) {// d means digit System.out.println ('metacharacters d ....') // (non-digit) System.out.println (Pattern.matches ('d', 'abc')) // Output: false // (siffer og kommer en gang) System.out.println (Pattern.matches ('d', '1') ) // Utgang: sann // (siffer, men kommer mer enn en gang) System.out.println (Pattern.matches ('d', '4443')) // Output: false // (sifre og tegn) System.out .println (Pattern.matches ('d', '323abc')) // Output: false // D betyr ikke-sifret System.out.println ('metategn D ....') // (ikke-sifret men kommer mer enn en gang) System.out.println (Pattern.matches ('D', 'abc')) // Output: false // Its a Digit System.out.println (Pattern.matches ('D', '1 ')) // Output: false System.out.println (Pattern.matches (' D ',' 4443 ')) // Output: false // (digit and char) System.out.println (Pattern.matches (' D ',' 323abc ')) // Utgang: falsk // (ikke-siffer og kommer en gang) System.out.println (Pattern.matches (' D ',' m ')) // Output: true System.out .pr intln ('metategn D med kvantifier ....') // (ikke-siffer og kan komme 0 eller flere ganger) System.out.println (Pattern.matches ('D *', 'abc')) // Output : sant}}
Basert på de ovennevnte forholdene, vil den vise utdataene. Slik fungerer det. Så det handlet om forskjellige typer Regex. Med dette kommer vi til slutten av denne artikkelen. Jeghåper du syntes det var informativt. Hvis du ønsker å lære mer, kan du sjekke ut vår også.
Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk med mer enn 250 000 fornøyde elever spredt over hele verden. Vi er her for å hjelpe deg med hvert trinn på reisen, for å bli en foruten dette java-intervjuspørsmålene, kommer vi med en læreplan som er designet for studenter og fagpersoner som ønsker å være Java-utvikler.
Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne 'Java Regex' -artikkelen, så kommer vi tilbake til deg så snart som mulig.