Mis on Java tavalised avaldised?
Java , Regex või Regular Expression on rakendusprogrammiliides, mis aitab mustri määratlemisel stringe otsida, käsitseda ja redigeerida. Java regulaaravaldisi kasutatakse paroolide ja meilide valideerimisel laialdaselt. Neid avaldisi pakub pakett java.util.regex ja need koosnevad ühest liidesest ja 3 klassist.
Kolm klassi on:
- Muster: aitab mustrite määratlemisel.
- Matcher: mustrite kasutamine aitab matšoperatsioonide teostamisel.
- PatternSyntaxException: aitab süntaksivigu näidata.
Java Regexil on üks liides, mida tuntakse nimega MatchResultInterface, mis aitab kindlaks teha regulaaravaldise vasteoperatsiooni tulemust.
Regulaaravaldise süntaks Java-s
Nüüd vaatame, kuidas kirjutada Java abil tavalist avaldist programmi abil.
Kood:
//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String A = " Happiness is " + " within yourself";
String B = ".*within.*";
// checks whether the string A contains the word 'within' and stores the result in matchcheck
boolean matchcheck = Pattern.matches(B, A);
//prints the result
System.out.println("Is there any string 'within' in the text ? \n " + matchcheck);
) )
Väljund:
Tavaliselt kasutatavad meetodid regulaaravaldistes
Regulaarlausetes on 3 tavaliselt kasutatavat meetodit. Nemad on,
1. Indeksimeetodid
Indeksimeetodid pakuvad indeksiväärtusi, mis aitavad täpselt näidata, kus vaste leiti sisendina antud stringist.
Meetod | Kirjeldus |
algus () | Eelmise matši algusindeks tagastatakse. |
algus (siserühm) | Arvestades rühma eelmist matšioperatsiooni, võetakse järjestus tagasi ja tagastatakse. |
lõpp() | Pärast viimase tähe sobitamist tagastatakse nihke. |
Lõpp (siserühm) | Arvestades grupi eelmist matšioperatsiooni, jäädvustatakse ja tasakaalustatakse järjestus pärast tema viimase tähemärgi tagastamist. |
2. Õppemeetodid
Õppemeetodid kontrollivad sisendina antud stringi ja tagastatakse tõeväärtus, mis näitab, kas muster leitakse või mitte.
Meetod | Kirjeldus |
Vaatan() | Sobitage sisendina antud järjestus piirkonna alguse mustriga. |
leid () | Leiab sisendina antud järjestuse järgmise järjestuse piirkonna alguse mustri alusel. |
leidma (algus) | Lähtestab sobitaja ja leiab siis järgneva järjestuse, mis on antud sisendina määratud mustri alusel määratud indeksist. |
tikud() | Sobitab sisu mustriga. |
3. Asendusmeetodid
Meetodid, mida kasutatakse stringi teksti asendamiseks.
Meetod | Kirjeldus |
appendReplacement (StringBuffer s, String asendamine) | Rakendatakse mitteterminaline lisamise ja asendamise samm. |
appendTail (StringBuffer s) | Rakendatakse terminali lisamine ja asendamise samm. |
Asenda kõik (Stringi asendamine) | Asendage sisendina antud järjestuse kogu järjestus, mis sobib mustriga, asendusstringiga. |
quoteReplacement (stringid) | Mainitud stringi jaoks tagastatakse sõnasõnaline asendustring. |
replaFirst (stringi asendamine) | Asendage sisendina antud järjestuse esimene järjestus, mis sobib mustriga asendusstringiga. |
Kuidas Java-s regulaaravaldist defineerida?
Regulaarväljendit saab defineerida mitmel viisil. Nemad on:
1. Kirjandus
Oletame, et stringi „hai” tuleb otsida tekstist „hai”. Seda saab teha süntaksi abil.
Pattern.matches("hai", "hai")
2. Tegelasklassid
See sobib teksti sisendina sisestatud tähemärkidega märgiklassi mitme lubatud tähega. Järgnevalt on toodud erinevad klassi konstruktsioonid.
Tegelasklass | Seletus |
(pqr) | Vastab tekstile, kui see sisaldab kas p, q või r ja see peaks olema ainult üks kord. |
(pqr) | tähistab eitust ja seetõttu võetakse siin üks tähemärk, välja arvatud p, q või r. |
(a-zA-Z) | a kuni z ja A kuni Z loetakse. |
(reklaam (ps)) | a kuni d või p kuni s. |
(a-dm-p) | Mõlema vahemiku liit. |
(az && (pqr)) | a kuni z ja (p, q või r). |
(az && (pq)) | a kuni z ja ka p, q ei arvestata. |
(ad-z) | Teeb lahutamise. |
(az && (mp)) | a kuni z ja mitte m kuni p. |
3. Metakarakterid
Metakarakterid toimivad nagu tavalises avaldises lühikoodid. Järgnevalt on toodud mõned tavaliselt kasutatavad metamärgid.
Regulaarväljendus | Seletus |
\ d | Mistahes numbrit vahemikus 0 kuni 9. Selle võib kirjutada ka (0-9). |
\ D | Kõik numbrid, mis puuduvad vahemikus 0 kuni 9. Selle võib kirjutada ka kui (0-9). |
\ s | Tühimärk või (\ t \ n \ x0B \ f \ r). |
\ S | Mitte tühimärk või (\ s). |
\ w | Sõnamärk või (a-zA-Z_0-9). |
\ W | Mittesõnaline märk või (\ w). |
\ b | Sõna piir. |
\ B | Sõnaväline piir. |
4. Kvantifikaatorid
Kvantifikaatorites mainitakse iga märgi esinemise arvu, mis sobivad stringiga.
Regulaarväljendus | Seletus |
a? | Esineb üks kord või üldse mitte. |
A * | A esineb 0 või enam korda. |
A + | A esineb 1 või enam korda. |
A (n) | A esineb täpselt n korda. |
A (n, ) | A esineb n või enam. |
A (n, m) | A esineb vähemalt n korda, kuid see ei tohiks olla üle m korra. |
Kuidas luua Java-s regulaaravaldist?
Vaatame nüüd java-programmi ülalnimetatud tavaväljenditega.
Kood:
//Java program to demonstrate regular expressions
import java.util.regex.*;
public class RegExamples (
public static void main(String args())(
String str="hai";
// Returns true if string 1 matches string 2
System.out.println("Returns true if 'hai' matches 'Hai' :"+
Pattern.matches(str, "Hai")); //False
//Returns true if Hai or hai matches parameter 2
System.out.println("Returns true if 'Hai' or 'hai' matches 'Hai' : "+
Pattern.matches("(Hh)ai", "Hai")); //True
// Returns true if the string matches exactly "ann" or "Ann" or "jak" or "Jak"
System.out.println("Returns true if the string matches exactly 'ann' or 'Ann' or 'jak' or 'Jak' with 'Ann' : "+
Pattern.matches("(aA)nn|(jJ)ak", "Ann"));//True
//returns true if the string contains "with" at any place in the string
System.out.println("returns true if the string contains 'with' in the string 'within' : " +
Pattern.matches(".*with.*", "within"));//True
// returns true if the '9448anna' does not have number in the beginning
System.out.println( "returns true if the '9448anna' does not have number in the beginning : "+
Pattern.matches("^(^\\d).*", "9448anna")); //False
System.out.println("returns true if the '9448anna' does not have number in the beginning : " +
Pattern.matches("^(^\\d).*", "anna9448")); //True
)
)
Väljund:
Järeldus
Java regulaaravaldisi kasutatakse laialdaselt reaalajas rakenduste jaoks, näiteks paroolide ja e-posti kontrollimine. Need avaldised on API-d, mis määravad mustrid ja pakuvad stringi otsimist, redigeerimist ja mitmeid muid toiminguid.
Soovitatavad artiklid
See on Java tavaliste avaldiste juhend. Siin arutleme selle üle, kuidas luua javas regulaarsete avaldiste meetodeid, kuidas neid määratleda ja mida tavaliselt kasutatakse. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -
- 3 parimat Java koostajat
- Regulaarsed avaldised JavaScriptis - omadused ja meetodid
- Java rakenduste arendamine
- Massiivimeetodid Java koos näidetega
- Regexi funktsioonid Pythonis (näide)