Andmete väljavõtmine või valideerimine on iga programmeerimiskeele oluline aspekt. Üks populaarsemaid viise andmete valideerimiseks on regulaaravaldiste kasutamine. kasutab neidregulaarsed väljendid tähemärgi mustri kirjeldamiseks. See artikkel on Java regex loetleb avaldiste kasutamise erinevad meetodid järgmises järjestuses:
- Mis on regulaaravaldised?
- Mis on Java Regex?
- Võistlusklass
- Mustriklass
- Regexi märkide klass
- Regexi kvantorid
- Regex Metacharacters
Alustame!
Mis on regulaaravaldised?
TO Regulaarne väljend on tähemärkide jada, mis konstrueerib otsingumustri. Kui otsite andmeid tekstist, saate selle otsingumustri abil kirjeldada otsitavat.
java teisendab stringi kuupäevaks
Regulaaravaldus võib olla a üks märk või keerulisem muster. Seda saab kasutada mis tahes tüüpi teksti otsimiseks ja teksti asendamiseks. Regexi muster koosneb lihtsatest märkidest, näiteks / abc / või lihtsate ja erimärkide kombinatsioon, näiteks / ab * c / või /näide(d+).d*/ .
Mis on Java Regex?
The Java regex on API, millega on harjunud määrake otsimise või manipuleerimise muster . Seda kasutatakse laialdaselt stringide piirangu määratlemiseks, näiteks parooli ja e-posti valideerimine.
Java Regexi kasutamiseks on erinevaid meetodeid. Nii et lähme edasi ja vaatame erinevaid väljendeid.
Võistlusklass
Seda klassi kasutatakse märgijärjestuse sobitamistoimingute tegemiseks. Allpool olev tabel esindab Matcheri klassi erinevaid meetodeid.
Meetod | Kirjeldus |
---|---|
tõeväärtuse vasted () | Testib, kas antud regulaarne avaldis sobib mustriga |
tõeväärtuse leid () | Kasutatakse järgmise mustriga sobiva avaldise leidmiseks |
boolean leid (int algus) | Otsib järgmist avaldist, mis sobib antud algusnumbri mustriga |
Stringirühm () | Kasutatakse sobitatud järgnevuse tagastamiseks |
int algus () | Tagastab sobitatud järgnevuse algusindeksi |
int lõpp () | Tagastab sobitatud järgnevuse lõpuindeksi |
int groupCount () | Tagastab sobitatud alamjärjestuse koguarvu |
Mustriklass
Mustriklass on regulaaravaldise kompileeritud versioon, mida kasutatakse regex-mootori mustri määratlemiseks.
Meetod | Kirjeldus |
---|---|
staatilise mustri kompileerimine (stringi regex) | See kompileerib antud regexi ja tagastab mustri eksemplari |
Vastab vastetele (sisend CharSequence) | Seda kasutatakse vaste loomiseks, mis sobib antud sisendi mustriga |
staatilised tõeväärtuse vasted (Stringi regex, CharSequence'i sisend) | See töötab kompileerimis- ja sobitusmeetodite kombinatsioonina. See kompileerib regulaaravaldise ja sobitab antud sisendi mustriga |
String [] split (sisend CharSequence) | Kasutatakse antud sisendi stringi jagamiseks antud mustri vastete ümber |
Stringimuster () | Aitab tagastada regexi mustri |
Võtame nüüd väikese näite, et mõista, kuidas regulaaravaldist kirjutada.
import java.util.regex. * public class RegexEexample {public static void main (String [] args) {Pattern pattern = Pattern.compile ('. xx.') Matcher matcher = pattern.matcher ('AxxB') System.out .println ('String sobib antud regexiga - + matcher.matches ())}}
Sel juhul kasutab sisemiselt Pattern ja Matcher regex klassid töötlemiseks, kuid ilmseltsee vähendab koodiridu. Mustriklass sisaldab ka meetodit match, mis võtab argumendiks regex ja input String ning tagastab pärast nende sobitamist boolean tulemuse. Nii et kood töötab sisendi sobitamiseks hästi regulaaravaldisega Java-s. Seega on väljund tõene, nagu allpool näidatud.
Väljund:
tõsi
meetodi ülekoormamine vs meetodi ülimuslikkus
Vaatame nüüd veel mõnda Java regulaaravaldiste kategooriat.
Regexi märkide klass
Allpool olev tabel tähistab erinevat märgiklassi kombinatsiooni.
Tähemärkklass | Kirjeldus |
---|---|
[abc] | a, b või c (lihtklass) |
[^ abc] | Kõik tähed, välja arvatud a, b või c (eitus) |
[a-zA-Z] | a kuni z või A kuni Z, kaasa arvatud (vahemik) |
[a-d [m-p]] | a kuni d või m kuni p: [a-dm-p] (liit) |
[a-z && [def]] | d, e või f (ristmik) |
[a-z && [^ bc]] | a kuni z, välja arvatud b ja c: [ad-z] (lahutamine) |
[a-z && [^ m-p]] | a kuni z ja mitte m kuni p: [a-lq-z] (lahutamine) |
Näide:
import java.util.regex. * public class CharacterExample {public static void main (String args []) {// false (mitte x ega y või z) System.out.println (Pattern.matches ('[xyz]', 'wbcd')) // true (x või y või z hulgas) System.out.println (Pattern.matches ('[xyz]', 'x')) // // false (x ja y tuleb mitu korda) süsteem .out.println (muster sobib ('[xyz]', 'xxyyyyyz'))}}
Regexi kvantorid
Kvantorid määravad märgi esinemiste arvu. Tabeli all on esitatud erinevad kvantorid.
Regex | Kirjeldus |
---|---|
X? | X esineb üks kord või üldse mitte |
X + | X esineb üks või mitu korda |
X * | X esineb null või rohkem korda |
X {n} | X esineb ainult n korda |
X {n,} | X esineb n või rohkem korda |
X ja Z} | X esineb vähemalt y korda, kuid vähem kui z korda |
Näide:
import java.util.regex. * public class Näide {public static void main (String args []) {System.out.println ('? quantifier ....') // (a või y või z tuleb üks kord) System.out.println (muster.matches ('[ayz]?', 'A')) // väljund: true System.out.println (muster.matches ('[ayz]?', 'Aaa')) / / (ay ja z tuleb rohkem kui üks kord) System.out.println (Muster.matches ('[ayz]?', 'ayyyyzz')) // väljund: false // (a tuleb rohkem kui üks kord) süsteem. out.println (muster.matches ('[ayz]?', 'amnta')) // väljund: false // (a või y või z peab tulema üks kord) System.out.println (muster.matches ('[ ayz]? ',' ay ')) // väljund: vale System.out.println (' + quantifier .... ') // (a või y või z üks või mitu korda) System.out.println (muster .matches ('[ayz] +', 'a')) // output: true // (a tuleb rohkem kui üks kord) System.out.println (Pattern.matches ('[ayz] +', 'aaa') )) // outpu: true // (a või y või z tuleb mitu korda) System.out.println (Pattern.matches [[amn] + ',' aayyyzz ')) // output: true // (z ja t ei sobi mustriga) System.out.println (Pat tern.matches ('[ayz] +', 'aammta')) // väljund: false System.out.println ('* quantifier ....') // (a või y või z võivad tulla nulli või rohkem kordi ) System.out.println (muster sobib ('[ayz] *', 'ayyyza')) // väljund: tõsi}}
Põhimõtteliselt otsib see sobivat kvantorit ja vastab otsingutulemile.
Regex Metacharacters
Regulaaravaldise metamärgid töötavad lühikoodidena. Heitkem pilk alltoodud tabelisse, et mõista erinevaid metamärke.
Regex | Kirjeldus |
---|---|
. | See võib olla ükskõik milline märk (võib sobida terminatoriga või mitte) |
d | Esitab kõiki numbreid, mis jäävad alla [0–9] |
D | Esitab kõiki mittekohaseid, lühidalt [^ 0–9] |
s | Esitab kõiki tühimärke, lühidalt [tnx0Bfr] |
S | See võib olla tühimärk, lühidalt [^ s] |
aastal | See võib olla sõnaline tähemärk, lühidalt [a-zA-Z_0-9] |
IN | Esitab kõiki mittesõnalisi tähemärke, lühidalt [^ w] |
b | Esitab sõnapiiri |
B | See on sõnavaba piir |
Näide:
mis on suurandmete hadoop
import java.util.regex. * public class MetacharExample {public static void main (String args []) {// d tähendab numbrit System.out.println ('metamärgid d ....') // (mittekohaline) System.out.println (Pattern.matches ('d', 'abc')) // Väljund: false // (number ja tuleb üks kord) System.out.println (Pattern.matches ('d', '1') ) // Output: true // (number, kuid tuleb mitu korda) System.out.println (Pattern.matches ('d', '4443')) // Output: false // (number ja char) System.out .println (Pattern.matches ('d', '323abc')) // Väljund: false // D tähendab mitte-numbrit System.out.println ('metamärgid D ....') // (mittekohaline, kuid tuleb mitu korda) 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 // (number ja märk) System.out.println (Pattern.matches (' D ',' 323abc ')) // Output: false // (mittekohaline ja tuleb üks kord) System.out.println (Pattern.matches (' D ',' m ')) // Output: true System.out .pr intln ('metamärgid D koos kvantoriga ....') // (mittekohaline ja võib tulla 0 või enam korda) System.out.println (Muster.koondub ('D *', 'abc')) // Väljund : tõsi } }
Eespool nimetatud tingimuste põhjal kuvab see väljundi. Nii see töötab. Nii et see oli kõike erinevat tüüpi Regex. Sellega jõuame selle artikli lõpuni. Minaloodan, et leidsite selle informatiivseks. Kui soovite rohkem teada saada, saate tutvuda meie lehega samuti.
Vaadake autor Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik koosneb enam kui 250 000 rahulolevast õppijast ja mis levib üle kogu maailma. Oleme siin, et aidata teil igal sammul teie teekonnal, et saada lisaks sellele Java-intervjuu küsimustele välja, pakume välja õppekava, mis on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java-arendajad.
Kas teil on meile küsimus? Palun mainige seda selle artikli „Java Regex“ kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.