JavaRush /Java Blog /Random-TK /Java-da yzygiderli aňlatmalar
terranum
Dereje
Milan

Java-da yzygiderli aňlatmalar

Toparda çap edildi
RegExYzygiderli aňlatma, tekste ulanylyp bilinýän bir görnüşdir (String, Java-da). Java yzygiderli aňlatmalara gabat gelmek üçin java.util.regex paketini üpjün edýär . Yzygiderli aňlatmalar Perl programmirleme diline gaty meňzeýär we öwrenmek gaty aňsat. Yzygiderli aňlatma ýa-da tekste gabat gelýär ýa-da ýok. * Eger yzygiderli aňlatma tekstiň bir bölegine gabat gelýän bolsa, ony tapyp bileris. ** Eger yzygiderli aňlatma birleşýän bolsa, adaty aňlatmanyň haýsy böleginiň tekstiň haýsy bölegine gabat gelýändigini aňsatlyk bilen bilip bileris.

Ilkinji mysal

"" Adaty aňlatma [a-z] +tekstdäki kiçi harplara gabat gelýär. öz içine alýan [a-z]islendik nyşany aňladýar we "bir ýa-da birnäçe" nyşanlary aňladýar. Geliň, "kod 2 öwren java tutorial" setirini hödürleýäris. Java-da muny nädip etmeli Ilki bilen, bir şablon döretmeli: az+
import java.util.regex.*;
Pattern p = Pattern.compile([a-z]+);
matcherOndan soň , diagramma habar iberip, tekst üçin döretmeli :
Matcher m = p.matcher(“code 2 learn java tutorial”);
BELLIK: Gurluşykçylaram ýok Pattern, Matchersynp usullaryny ulanyp döredýäris Pattern. Pattern Class:Synp obýekti yzygiderli aňlatmagyň görnüşini emele getirýär. Nusga synpy jemgyýetçilik gurluşykçylaryny üpjün etmeýär. Şablon döretmek üçin ilki bilen umumy statiki usullardan birine jaň etmeli, soň bolsa synpyň obýektini yzyna gaýtarmaly Pattern. Bu usullar argument hökmünde yzygiderli aňlatýarlar. Matcher Class:Finder obýekti nagşy düşündirýän we giriş setirinde gabat gelýän amallary ýerine ýetirýän hereketlendiriji. PatternSynp ýaly , Matcherjemgyýetçilik gurluşykçylary ýok. Synp obýektine Matcherusuly çagyryp bir obýekt alarsyňyz . Bu ädimleri ýerine ýetirenimizden soň, indi synpyň mysaly bar bolsa , indi nagşyň tapylandygyny ýa-da ýokdugyny, şeýle bolsa, haýsy ýagdaýda we ş.m. barlap bileris. Eger nagyş tutuş setir bilen gabat gelýän bolsa, başgaça ýalňyş. nagyş setiriň başyna gabat gelýän bolsa, başgaça ýalňyş. nagyş tekstiň haýsydyr bir bölegine gabat gelýän bolsa hakyky bolýar. matcherPatternMatcher m m.matches()m.lookingAt()m.find ()

Gabat gelýän tapmak

Üstünlikli oýundan soň m.start () gabat gelýän birinji harpyň indeksini we m.end () gabat gelen iň soňky belginiň indeksini we bir sanysyny yzyna getirer. Eger şowsuz synanyşyk edilse we hiç hili oýun tapylmasa, m.start()zyňarlarm.end()IllegalStateException
  • Munuň RuntimeExceptionüçin ony tutmak hökman däl.
Iň soňky gabat gelýän nyşanlaryň indeksini we birini yzyna gaýtarmak geň bolup görünmegi mümkin m.end(), ýöne köpüsiniň köpüsi String.
  • Mysal üçin,“Now is the time“.substring(m.start(), m.end())
şol bir setiri yzyna getirer. Koda göz aýlalyň:
import java.util.regex.*;

public class RegexTest {
    public static void main(String args[]) {
        String pattern = "[a-z]+";
        String text = "code 2 learn java tutorial";
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(text);
        while(m.find()) {
            System.out.print(text.substring(m.start(), m.end()) + "*");
        }
    }
}
Output: code*learn*java*tutorial*

Goşmaça usullar

Duşuşyk bar bolsa:
  • m.replaceFirst(replacement)nagyşa gabat gelýän ilkinji substring bilen çalşyljak täze setiri gaýtarýarreplacement
  • m.replaceAll(replacement)nagyşa gabat gelýän her aşaky çalyşma çalşylýan täze setiri gaýtarýar
  • m.find(StartIndex)görkezilen indeksden başlap indiki oýny tapyň
  • m.reset()şablony täzeden düzýär
  • m.reset(NewText)tapyjyny täzeden düzýär we oňa täze tekst berýär (belki String, StringBufferýa-da CharBuffer)

Yzygiderli aňlatma sintaksis

  • ^Setiriň başyna gabat gelýär.
  • $Setiriň ujuna gabat gelýär.
  • .Täze setirden başga islendik nyşan bilen gabat gelýär. M opsiýasyny ulanmak, täze setire gabat gelmäge mümkinçilik berýär.
  • [...]Gaplaňdaky islendik nyşan bilen gabat gelýär.
  • [^ ...]Gaplaňda däl islendik nyşan bilen gabat gelýär.
  • \ALinehli setiri başlaň.
  • \zBütin setiriň soňy.
  • \ZIň soňky setir terminatoryndan başga ähli setiriň soňy.
  • re*Öňki aňlatmanyň 0 ýa-da has köp gabat gelmegi.
  • re+Öňki aňlatmanyň bir ýa-da birnäçe gabat gelişi.
  • re?Öňki aňlatmanyň ýerleşýän ýerine 0 ýa-da 1 gabat gelýär.
  • re{n}Takyk N gabat gelýär Öňki aňlatmanyň ýüze çykan sany.
  • re{n,}Öňki aňlatmanyň N ýa-da has köp ýüze çykmagy.
  • re{n, m}Iň azyndan n we öňki aňlatmanyň iň köp m hadysalaryna gabat gelýär.
  • a|bA ýa-da b gabat gelýär.
  • (re)Yzygiderli aňlatmalar we tapylan teksti ýada salmak.
  • (?: re)Tapylan teksti ýada salmaýan yzygiderli aňlatmalar toparlary.
  • (?> re)Garaşsyz nagşa laýyk gelýär.
  • \wHarplara we sanlara gabat gelýär [a-zA-Z_0-9].
  • \WBular harp ýa-da san däl.
  • \sBoş ýerler. [\ T \ n \ r \ f] bilen deňdir.
  • \SAk giňişlik nyşanlary däl.
  • \dSanlara gabat gelýär. [0-9] bilen deňdir.
  • \DSanlara gabat gelenok
  • \GSoňky oýnuň nokadyna gabat gelýär.
  • \nTäze setir bilen gabat gelýär.
  • \bSöz araçäginde gabat gelýär.
  • \BSöz araçäginde däl.
  • \n, \t, etc.Täze setir, wagonyň gaýdyp gelmegi, tab we ş.m. nyşanlary.
  • \Q\ E-den öň ähli nyşanlary sitata ediň.
  • \ESitata \ Q gutarýar.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION