Az adatok kinyerése vagy validálása minden programozási nyelv fontos szempontja. Az adatok érvényesítésének egyik legnépszerűbb módja a reguláris kifejezések használata. ezeket használjareguláris kifejezések a karakterek mintázatának leírására. Ez a cikk a Java Regex felsorolja a kifejezések felhasználásának különféle módszereit a következő sorrendben:
- Mik azok a reguláris kifejezések?
- Mi a Java Regex?
- Matcher osztály
- Minta osztály
- Regex Karakterosztály
- Regex kvantorok
- Regex Metakarakterek
Lássunk neki!
Mik azok a reguláris kifejezések?
NAK NEK Reguláris kifejezés egy karaktersor, amely felépíti a keresési mintát. Amikor adatokat keres egy szövegben, ezzel a keresési mintával leírhatja, hogy mit keres.
A szabályos kifejezés lehet a egy karakter vagy egy bonyolultabb minta. Bármilyen típusú szövegkereséshez és szövegcsere műveletekhez használható. A Regex minta egyszerű karakterekből áll, mint pl / abc / , vagy egyszerű és speciális karakterek kombinációja, például /ABC/ vagy /example(d+).d*/ .
Mi a Java Regex?
Az Java Regex egy API, amelyhez szokott adjon meg egy mintát a kereséshez vagy a manipuláláshoz . Széles körben használják a karakterláncok korlátozásának meghatározására, például a jelszó és az e-mail ellenőrzés.
Különböző módszerek vannak a Java Regex használatára. Tehát haladjunk előre, és vessünk egy pillantást a különböző kifejezésekre.
Matcher osztály
Ezt az osztályt egy karaktersorozat egyezési műveleteinek végrehajtására használják. Az alábbi táblázat a Matcher osztály különböző módszereit mutatja be.
Módszer | Leírás |
---|---|
logikai egyezések () | Megvizsgálja, hogy az adott reguláris kifejezés megfelel-e a mintának |
logikai lelet () | Megtalálja a következő kifejezést, amely megfelel a mintának |
logikai lelet (int start) | Megkeresi a következő kifejezést, amely megegyezik az adott kezdő szám mintájával |
Karakterlánc-csoport () | Az illesztett alszekvencia visszaadására szolgál |
int start () | Visszaadja az egyeztetett folytatás kezdőindexét |
int vége () | Visszaadja az egyeztetett alszekvencia befejező indexét |
int groupCount () | Visszaadja az egyeztetett rész teljes számát |
Minta osztály
A Pattern Class a reguláris kifejezés összeállított változata, amely a regex motor mintázatának meghatározására szolgál.
Módszer | Leírás |
---|---|
statikus minta fordítása (String regex) | Összeállítja a megadott regexet és visszaadja a Pattern példányát |
Megfelel a mérkőzéseknek (CharSequence bevitel) | Olyan illesztõ létrehozására szolgál, amely megfelel az adott bemenetnek a mintával |
statikus logikai egyezések (String regex, CharSequence bemenet) | Ez fordítási és illesztési módszerek kombinációjaként működik. Összeállítja a reguláris kifejezést, és az adott bemenetet illeszti a mintához |
Karakterlánc [] felosztás (CharSequence bemenet) | Az adott bemeneti karakterlánc felosztására szolgál egy adott minta egyezései köré |
Karakterlánc minta () | Segít a regex minta visszaadásában |
Vegyünk egy kis példát, hogy megértsük, hogyan kell szabályos kifejezést írni.
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 ('A karakterlánc megegyezik a megadott Regexszel - + matcher.matches ())}}
Ebben az esetben belsőleg a Pattern and Matcher-t használja regex osztályok a feldolgozás elvégzéséhez, de nyilvánvalóan,csökkenti a kódsorokat. A Pattern osztály tartalmaz egyezési metódust is, amely a regexet és az input String argumentumot veszi fel, és azok összeadása után logikai eredményt ad vissza. Tehát a kód jól működik a megfelelő bemenethez Java rendszeres kifejezéssel. Ezért a kimenet az alábbiak szerint igaz lesz.
Kimenet:
igaz
Most nézzünk meg még néhány Java reguláris kifejezés kategóriát.
Regex Karakterosztály
Az alábbi táblázat a különböző karakterosztály-kombinációkat mutatja.
Karakterosztály | Leírás |
---|---|
[ABC] | a, b vagy c (egyszerű osztály) |
[^ abc] | Bármely karakter, kivéve a, b vagy c (tagadás) |
[a-zA-Z] | a – z vagy A – Z, beleértve (tartomány) |
[a-d [m-p]] | a - d, vagy m - p: [a-dm-p] (egyesülés) |
[a-z && [def]] | d, e vagy f (metszéspont) |
[a-z && [^ bc]] | a – z, kivéve b és c: [ad-z] (kivonás) |
[a-z && [^ m-p]] | a-tól z-ig, és nem m-től p-ig: [a-lq-z] (kivonás) |
Példa:
java.util.regex. * public class CharacterExample {public static void main (String args []) {// hamis (nem x vagy y vagy z) System.out.println (Pattern.matches ('[xyz]', 'wbcd')) // true (x vagy y vagy z között) System.out.println (Pattern.matches ('[xyz]', 'x')) // // false (x és y többször jön) System .out.println (Pattern.matches ('[xyz]', 'xxyyyyyz')}}}
Regex kvantorok
A kvantorok meghatározzák a karakter előfordulásainak számát. Az alábbi táblázat különféle kvantorokat mutat be.
Regex | Leírás |
---|---|
X? | X egyszer fordul elő, vagy egyáltalán nem |
X + | X egyszer vagy többször előfordul |
X * | X nulla vagy többször fordul elő |
X {n} | X csak n-szer fordul elő |
X {n,} | X n vagy többször fordul elő |
X és Z} | X legalább y-szer, de kevesebb mint z-szer fordul elő |
Példa:
import java.util.regex. * public class Példa {public static void main (String args []) {System.out.println ('? quantifier ....') // (a vagy y vagy z egyszer jön) System.out.println (Pattern.matches ('[ayz]?', 'A')) // output: true System.out.println (Pattern.matches ('[ayz]?', 'Aaa')) / / (ay és z többször jön) System.out.println (Pattern.matches ('[ayz]?', 'ayyyyzz')) // output: false // (a többször jön) System. out.println (Pattern.matches ('[ayz]?', 'amnta')) // output: false // (a vagy y vagy z egyszer kell, hogy jöjjön) System.out.println (Pattern.matches ('[ ayz]? ',' ay ')) // output: hamis System.out.println (' + kvantor .... ') // (a vagy y vagy z egyszer vagy többször) System.out.println (minta .matches ('[ayz] +', 'a')) // output: true // (a többször jön) System.out.println (Pattern.matches ('[ayz] +', 'aaa') )) // outpu: true // (az a vagy y vagy z többször jön) System.out.println (Pattern.matches ([amn] + ',' aayyyzz ')) // output: true // (z és t nem egyeznek a mintával) System.out.println (Pat tern.matches ('[ayz] +', 'aammta')) // output: hamis System.out.println ('* quantifier ....') // (a vagy y vagy z nulla vagy többszöröse lehet ) System.out.println (Pattern.matches ('[ayz] *', 'ayyyza')) // output: true}}
objektumok tömbje java-ban
Alapvetően meg fogja keresni az egyező kvantort, és egyezik a keresési eredménnyel.
Regex Metakarakterek
A reguláris kifejezés metakarakterei rövid kódként működnek. Vessünk egy pillantást az alábbi táblázatra, hogy megértsük a metakarakterek különféle típusait.
Regex | Leírás |
---|---|
. | Bármely karakter lehet (lehet, hogy nem egyezik a terminátorral) |
d | Bármely számjegyet képvisel, a [0–9] rövidítés nélkül |
D | Minden nem számjegyet képvisel, rövidítve a [^ 0-9] kifejezésen |
s | Minden szóköz karaktert képvisel, rövid a [tnx0Bfr] kifejezéssel |
S | Lehet nem szóköz karakter, rövid [^ s] |
ban ben | Lehet szó karakter, rövidítve az [a-zA-Z_0-9] kifejezéssel |
BAN BEN | Bármely nem szóból álló karaktert képvisel, rövidítve: [^ w] |
b | Szóhatárot képvisel |
B | Ez nem szóhatár |
Példa:
import java.util.regex. * public class MetacharExample {public static void main (String args []) {// d a System.out.println ('metakarakterek d ....') // (nem számjegy) számjegyet jelenti. System.out.println (Pattern.matches ('d', 'abc')) // Output: false // (számjegy és egyszer jön) System.out.println (Pattern.matches ('d', '1') ) // Output: true // (számjegy, de többször jön) System.out.println (Pattern.matches ('d', '4443')) // Output: false // (digit and char) System.out .println (Pattern.matches ('d', '323abc')) // Output: false // D jelentése nem számjegyű System.out.println ('metakarakter D ....') // (nem számjegy, de többször jön) System.out.println (Pattern.matches ('D', 'abc')) // Output: false // Ez egy Digit System.out.println (Pattern.matches ('D', '1 ')) // Output: hamis System.out.println (Pattern.matches (' D ',' 4443 ')) // Output: false // (szám és karakter) System.out.println (Pattern.matches (' D ',' 323abc ')) // // Output: false // (nem számjegyű és egyszer jön) System.out.println (Pattern.matches (' D ',' m ')) // Output: true System.out .pr intln ('metakarakterek D kvantorral ....') // (nem számjegyűek, és jöhetnek 0 vagy többször is) System.out.println (Pattern.matches ('D *', 'abc')) // Output : true}}
A fent említett feltételek alapján megjeleníti a kimenetet. Így működik. Szóval, ez csak a különféle típusokról szólt Regex. Ezzel a cikk végére értünk. énremélem, informatívnak találta. Ha többet szeretne megtudni, nézze meg a mi oldalunkat is.
Nézze meg a az Edureka, egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóval rendelkező hálózata elterjedt az egész világon. Azért vagyunk itt, hogy segítséget nyújtsunk az utazás minden lépésében, hogy e java interjúk kérdése mellett a tananyagot kitaláljuk olyan hallgatók és szakemberek számára, akik Java fejlesztők szeretnének lenni.
Van egy kérdésünk? Kérjük, említse meg a „Java Regex” cikk megjegyzés rovatában, és amint lehetséges, kapcsolatba lépünk Önnel.