Yzygiderli 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:
a
z
+
import java.util.regex.*;
Pattern p = Pattern.compile(“[a-z]+”);
matcher
Ondan soň , diagramma habar iberip, tekst üçin döretmeli :
Matcher m = p.matcher(“code 2 learn java tutorial”);
BELLIK: Gurluşykçylaram ýok
Pattern
,
Matcher
synp 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.
Pattern
Synp ýaly ,
Matcher
jemgyýetçilik gurluşykçylary ýok. Synp obýektine
Matcher
usuly ç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.
matcher
Pattern
Matcher 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ňarlar
m.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.
\A
Linehli setiri başlaň.
\z
Bütin setiriň soňy.
\Z
Iň 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|b
A ý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.
\w
Harplara we sanlara gabat gelýär [a-zA-Z_0-9].
\W
Bular harp ýa-da san däl.
\s
Boş ýerler. [\ T \ n \ r \ f] bilen deňdir.
\S
Ak giňişlik nyşanlary däl.
\d
Sanlara gabat gelýär. [0-9] bilen deňdir.
\D
Sanlara gabat gelenok
\G
Soňky oýnuň nokadyna gabat gelýär.
\n
Täze setir bilen gabat gelýär.
\b
Söz araçäginde gabat gelýär.
\B
Sö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ň.
\E
Sitata \ Q gutarýar.
GO TO FULL VERSION