Dataekstraktion eller validering er et vigtigt aspekt af ethvert programmeringssprog. En af de mest populære måder til datavalidering er ved at bruge regulære udtryk. bruger disseregelmæssige udtryk for at beskrive et tegnemønster. Denne artikel om Java Regex vil liste de forskellige metoder til brug af udtryk i følgende rækkefølge:
- Hvad er regulære udtryk?
- Hvad er Java Regex?
- Matcher klasse
- Mønster klasse
- Regex karakterklasse
- Regex-kvantifikatorer
- Regex Metacharacters
Lad os komme igang!
Hvad er regulære udtryk?
TIL Almindelig udtryk er en sekvens af tegn, der konstruerer et søgemønster. Når du søger efter data i en tekst, kan du bruge dette søgemønster til at beskrive det, du leder efter.
Et regelmæssigt udtryk kan være en enkelt tegn eller et mere kompliceret mønster. Det kan bruges til enhver form for tekstsøgning og tekstudskiftning. Et Regex-mønster består af enkle tegn, f.eks / abc / eller en kombination af enkle og specialtegn, såsom / ab * c / eller /eksempel(d+).d*/ .
Hvad er Java Regex?
Det Java Regex er en API, der er vant til definere et mønster til søgning eller manipulation . Det bruges i vid udstrækning til at definere begrænsningen på strenge såsom adgangskode og validering af e-mail.
dyb kopi vs lav kopi java
Der er forskellige metoder til at bruge Java Regex. Så lad os gå videre og se på de forskellige udtryk.
Matcher klasse
Denne klasse bruges til at udføre matchoperationer på en tegnsekvens. Nedenstående tabel repræsenterer forskellige metoder i Matcher-klassen.
Metode | Beskrivelse |
---|---|
boolske kampe () | Tester, om det givne regulære udtryk matcher mønsteret |
boolsk fund () | Bruges til at finde det næste udtryk, der matcher mønsteret |
boolsk find (int start) | Søger det næste udtryk, der matcher mønsteret fra det givne startnummer |
Strenggruppe () | Bruges til at returnere den matchede sekvens |
int start () | Returnerer startindekset for den matchede sekvens |
int ende () | Returnerer slutningsindekset for den matchede sekvens |
int groupCount () | Returnerer det samlede antal af den matchede efterfølgende |
Mønster klasse
Mønsterklasse er en kompileret version af regulært udtryk, der bruges til at definere mønsteret for regex-motor.
Metode | Beskrivelse |
---|---|
statisk mønster kompilering (String regex) | Den kompilerer den givne regex og returnerer forekomsten af mønsteret |
Matcher matches (CharSequence-input) | Det bruges til at oprette en matcher, der matcher det givne input med mønsteret |
statiske boolske matches (String regex, CharSequence input) | Det fungerer som en kombination af kompilerings- og matchningsmetoder. Det kompilerer det regulære udtryk og matcher det givne input med mønsteret |
Streng [] split (CharSequence input) | Bruges til at opdele den givne inputstreng omkring matches af et givet mønster |
Strengmønster () | Hjælper med at returnere regex-mønsteret |
Lad os nu tage et lille eksempel for at forstå, hvordan man skriver et regulært udtryk.
import 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 matcher den givne Regex - + matcher.matches ())}}
I dette tilfælde bruger det internt mønster og matcher regex-klasser for at udføre behandlingen, men selvfølgeligdet reducerer kodelinjerne. Mønsterklasse indeholder også matches-metode, der tager regex og input streng som argument og returnerer et boolsk resultat efter matchning med dem. Så koden fungerer fint til matchende input med et regulært udtryk i Java. Derfor vil output være sandt som vist nedenfor.
Produktion:
sand
installer php på Windows 10
Lad os nu se et par flere kategorier af Java Regular Expressions.
Regex karakterklasse
Nedenstående tabel repræsenterer den forskellige kombination af tegnklasser.
Karakterklasse | Beskrivelse |
---|---|
[abc] | a, b eller c (enkel klasse) |
[^ abc] | Enhver karakter undtagen a, b eller c (negation) |
[a-zA-Z] | a til z eller A til Z, inklusive (interval) |
[a-d [m-p]] | a til d, eller m til p: [a-dm-p] (union) |
[a-z && [def]] | d, e eller f (kryds) |
[a-z && [^ bc]] | a til z undtagen b og c: [ad-z] (subtraktion) |
[a-z && [^ m-p]] | a til z, og ikke m gennem p: [a-lq-z] (subtraktion) |
Eksempel:
import 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 (blandt x eller y eller z) System.out.println (Pattern.matches ('[xyz]', 'x')) // false (x og y kommer mere end en gang) System .out.println (Pattern.matches ('[xyz]', 'xxyyyyyz'))}}
Regex-kvantifikatorer
Kvantifikatorerne angiver antallet af forekomster af et tegn. Nedenstående tabel repræsenterer forskellige kvantificeringsmidler.
Regex | Beskrivelse |
---|---|
X? | X forekommer en gang eller slet ikke |
X + | X forekommer en eller flere gange |
X * | X forekommer nul eller flere gange |
X {n} | X forekommer kun n gange |
X {n,} | X forekommer n eller flere gange |
X og Z} | X forekommer mindst y gange, men mindre end z gange |
Eksempel:
import 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 mere end én gang) System.out.println (Pattern.matches ('[ayz]?', 'ayyyyzz')) // output: false // (a kommer mere end én gang) System. out.println (Pattern.matches ('[ayz]?', 'amnta')) // output: false // (a eller y eller z skal komme en gang) System.out.println (Pattern.matches ('[ ayz]? ',' ay ')) // output: false System.out.println (' + quantifier .... ') // (a eller y eller z en eller flere gange) System.out.println (Mønster .matches ('[ayz] +', 'a')) // output: true // (a kommer mere end én gang) System.out.println (Pattern.matches ('[ayz] +', 'aaa' )) // outpu: true // (a eller y eller z kommer mere end én gang) System.out.println (Pattern.matches ([amn] + ',' aayyyzz ')) // output: true // (z og t matcher ikke mønster) System.out.println (Pat tern.matches ('[ayz] +', 'aammta')) // output: false System.out.println ('* quantifier ....') // (a eller y eller z kan komme nul eller flere gange ) System.out.println (Pattern.matches ('[ayz] *', 'ayyyza')) // output: true}}
Dybest set vil den søge efter den matchende kvantifier og matche søgeresultatet.
Regex Metacharacters
Metategnene for regulært udtryk fungerer som kortkoder. Lad os se på nedenstående tabel for at forstå forskellige typer metategn.
Regex | Beskrivelse |
---|---|
. | Det kan være et hvilket som helst tegn (matcher eventuelt terminator) |
d | Repræsenterer alle cifre, under [0-9] |
D | Repræsenterer enhver ikke-cifret, forkortelse for [^ 0-9] |
s | Repræsenterer ethvert mellemrumstegn, kort for [tnx0Bfr] |
S | Det kan være et tegn, der ikke er mellemrum, forkortelse for [^ s] |
i | Det kan være et ordtegn, kort for [a-zA-Z_0-9] |
I | Repræsenterer ethvert tegn, der ikke er ord, forkortelse for [^ w] |
b | Repræsenterer en ordgrænse |
B | Det er en ikke-ordgrænse |
Eksempel:
import java.util.regex. * public class MetacharExample {public static void main (String args []) {// d betyder cifret System.out.println ('metacharacters d ....') // (ikke-cifret) System.out.println (Pattern.matches ('d', 'abc')) // Output: false // (ciffer og kommer en gang) System.out.println (Pattern.matches ('d', '1') ) // Output: true // (ciffer, men kommer mere end en gang) System.out.println (Pattern.matches ('d', '4443')) // Output: false // (ciffer og char) System.out .println (Pattern.matches ('d', '323abc')) // Output: false // D betyder ikke-cifret System.out.println ('metacharacters D ....') // (ikke-cifret men kommer mere end én 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 // (ciffer og tegn) System.out.println (Pattern.matches (' D ',' 323abc ')) // Output: false // (ikke-cifret og kommer en gang) System.out.println (Pattern.matches (' D ',' m ')) // Output: true System.out .pr intln ('metategn D med kvantificering ....') // (ikke-cifret og kan komme 0 eller flere gange) System.out.println (Pattern.matches ('D *', 'abc')) // Output : sand } }
Baseret på de ovennævnte betingelser viser den output. Sådan virker det. Så det handlede om forskellige typer Regex. Med dette kommer vi til slutningen af denne artikel. jeghåber du fandt det informativt. Hvis du ønsker at lære mere, kan du tjekke vores såvel.
passere værdi i java
Tjek af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Vi er her for at hjælpe dig med hvert trin på din rejse, for at blive et udover dette java-interviewspørgsmål, kommer vi med en læseplan, der er designet til studerende og fagfolk, der ønsker at være Java-udvikler.
Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne “Java Regex” -artikel, og vi vender tilbage til dig hurtigst muligt.