Brza referenca za sintaksu regularnih izraza

Regularni izrazi, poznati kao obrasci, su modeli za tekst koji se obično koriste za pretraživanje, zamjenu i kontrolu teksta. Glavne uključuju slova od a do z kao i neke posebne metakaraktere. Primjena regularnih izraza je vrlo široka, izvorno su popularizirani u Unixu, a sada se široko koriste u jezicima kao što su Scala, PHP, C#, Java, C++, Objective-C, Perl, Swift, VBScript, Javascript, Ruby i Python. Učenje regularnih izraza zapravo je učenje vrlo fleksibilnog načina racionalnog razmišljanja, kroz jednostavne i brze metode za kontrolu stringova.
Regularni znak Opis
\ Označava sljedeći znak kao poseban znak, ili kao karakter u svom pravom značenju, ili kao vraćen referent, ili kao osmostruko kodiranje. Na primjer, “n" poklapa znak "n". "\n" poklapa jedan novi red. "\\" poklapa "\" dok "\(" poklapa "(".
^ Poklapa početnu poziciju niza unosa. Ako je postavljena Multiline svojstvo RegExp objekta, ^ također poklapa pozicije nakon “\n" ili "\r".
$ Poklapa završnu poziciju niza unosa. Ako je postavljena Multiline svojstvo RegExp objekta, $ također poklapa pozicije prije “\n" ili "\r".
* Poklapa prethodni podizraz nula ili više puta. Na primjer, zo* može poklapati “z" kao i "zoo". * je ekvivalentno {0,}.
+ Poklapa prethodni podizraz jedan ili više puta. Na primjer, “zo+" može poklapati "zo" kao i "zoo", ali ne može poklapati "z". + je ekvivalentno {1,}.
? Poklapa prethodni podizraz nula ili jednom. Na primjer, “do(es)?" može poklapati "does" ili "does" unutar "do".? je ekvivalentno {0,1}.
{n} n je nenegativan cijeli broj. Poklapa tačno n puta. Na primjer, “o{2}" ne može poklapati "Bob" unutar "o", ali može poklapati dva o unutar "food".
{n,} n je nenegativan cijeli broj. Poklapa barem n puta. Na primjer, “o{2,}" ne može poklapati "Bob" unutar "o", ali može poklapati sve o unutar "foooood". "o{1,}" je ekvivalentno "o+". "o{0,}" je ekvivalentno "o*".
{n,m} m i n su nenegativni celi brojevi, gde n<=m. Minimalno poklapanje n puta a maksimalno m puta. Na primjer, “o{1,3}" poklapa prva tri o unutar "fooooood". "o{0,1}" je ekvivalentno "o?". Napominjemo da između zareza i dvaju brojeva ne može biti praznog mesta.
? Kada je ovaj znak neposredno nakon bilo kojeg drugog modifikatora (*,+,?,{n},{n,},{n,m}), poklapanje je ne pohlepno. Nepohlepni način pokušava da poklopi što je moguće manje analiziranog stringa, dok je zadani pohlepni način pokušava da poklopi što je moguće više analiziranog stringa. Na primjer, za string “oooo", "o+?" će poklopiti samo jedan "o", dok "o+" poklapa sve "o".
. Poklapa bilo koji pojedinačni znak osim “\n". Da biste poklopili bilo koji znak uključujući "\n", koristite obrazac poput "(.|\n)".
(pattern) Poklapa pattern i dobiva ovo poklapanje. Dobiveno poklapanje može se dobiti iz generirane kolekcije Matches, dok se u VBScriptu koriste podkolekcije u SubMatches, a u JScriptu koriste svojstva $0…$9. Da biste poklopili znakove zagrade, koristite “\(" ili "\)".
(?:pattern) Poklapa pattern, ali ne dobiva rezultat poklapanja, što znači da je to ne dobiveno poklapanje, ne čuva se za kasniju upotrebu. Ovo je korisno prilikom korištenja ili karaktera “(|)" za kombiniranje različitih dijelova obrazaca. Na primjer, "industr(?:y|ies)" je zgodniji izraz od "industry|industries".
(?=pattern) Potvrda pozitivnog pregleda, poklapa se na bilo kojoj poziciji koja počinje s poklapajućim pattern-om. Ovo je ne dobiveno poklapanje, što znači da nije potrebno dobiti ovo poklapanje za kasniju upotrebu. Na primjer, “Windows(?=95|98|NT|2000)" može poklapati "Windows2000" unutar "Windows", ali ne može poklopiti "Windows3.1" unutar "Windows". Potvrda ne troši znakove, što znači da nakon jednog poklapanja, sljedeća potraga počinje odmah nakon posljednje pozicije poklapanja, a ne od znakova koji uključuju potragu.
(?!pattern) Negativna potvrda pregleda, poklapa se na bilo kojoj poziciji koja ne poklapa pattern. Ovo je ne dobiveno poklapanje, što znači da nije potrebno dobiti poklapanje za kasniju upotrebu. Na primjer, “Windows(?!95|98|NT|2000)" može poklopiti "Windows3.1" unutar "Windows", ali ne može poklopiti "Windows2000" unutar "Windows". Potvrda ne troši znakove, što znači da nakon jednog poklapanja, sljedeća potraga počinje odmah nakon posljednje pozicije poklapanja, a ne od znakova koji uključuju potragu.
(?<=pattern) Negativna potvrda pozadinske verifikacije se ponaša poput pozitivne potvrdne verifikacije, samo je u suprotnom smeru. Na primjer, “(?<=95|98|NT|2000)Windows" poklapa "2000Windows" unutar "Windows", ali ne može poklopiti "3.1Windows" unutar "Windows".
(?<!pattern) Negativna pozadinska potvrda pregleda se ponaša kao negativna potvrda pregleda, ali djeluje u suprotnom smeru. Na primjer, “(?<!95|98|NT|2000)Windows" može poklapati "3.1Windows" unutar "Windows", ali ne može poklopiti "2000Windows" unutar "Windows".
x|y Poklapa x ili y. Na primjer, “z|food" može poklapati "z" ili "food". "(z|f)ood" poklapa "zood" ili "food".
[xyz] Skup znakova. Poklapa se bilo kojim od uključene znakove. Na primjer, “[abc]" može poklapati "plain" unutar "a".
[^xyz] Skup negativnih znakova. Poklapa se bilo kojim od ne uključenih znakova. Na primjer, “[^abc]" može poklapati "plain" unutar "p".
[a-z] Raspon znakova. Poklapa se bilo kojim znakom unutar navedenog raspona. Na primjer, “[a-z]" može poklapati bilo koji malo slovo unutar "a" do "z".
[^a-z] Raspon negativnih znakova. Poklapa se bilo kojim znakom koji nije unutar navedenog raspona. Na primjer, “[^a-z]" može poklapati bilo koji znak koji nije unutar "a" do "z".
\b Poklapa granicu reči, što označava mjesto između reči i praznog mesta. Na primjer, “er\b" može poklopiti "never" unutar "er", ali ne može poklopiti "verb" unutar "er".
\B Poklapa se ne granica reči. “er\B" može poklapati "verb" unutar "er", ali ne može poklopiti "never" unutar "er".
\cx Poklapa kontrolni znak koji označava x. Na primer, \cM poklapa Control-M ili znak za povratak. Vrednost x mora biti jedan od A-Z ili a-z. U suprotnom, c se tretira kao znak u pravom značenju “c".
\d Poklapa jedan broj. Ekvivalentno je [0-9].
\D Poklapa jedan ne broj. Ekvivalentno je [^0-9].
\f Poklapa jedan znak za novu stranicu. Ekvivalentno je \x0c i \cL.
\n Poklapa jedan novi red. Ekvivalentno je \x0a i \cJ.
\r Poklapa jedan znak za povratak. Ekvivalentno je \x0d i \cM.
\s Poklapa bilo koji prazan znak, uključujući razmake, tabove, nove stranice itd. Ekvivalentno je [ \f\n\r\t\v].
\S Poklapa bilo koji ne prazan znak. Ekvivalentno je [^ \f\n\r\t\v].
\t Poklapa jedan tab. Ekvivalentno je \x09 i \cI.
\v Poklapa jedan vertikalni tab. Ekvivalentno je \x0b i \cK.
\w Poklapa bilo koji reč koji uključuje i donju crtu. Ekvivalentno je “[A-Za-z0-9_]".
\W Poklapa bilo koji ne reč karakter. Ekvivalentno je “[^A-Za-z0-9_]".
\xn Poklapa n, gde je n šesnaestodesetni kod. Šesnaestodesetni kod mora biti tačno dva broja dužine. Na primer, “\x41" poklapa "A". "\x041" je ekvivalentno "\x04&1". U regularnim izrazima se može koristiti ASCII kodiranje.
\num Poklapa num, gde je num pozitivan ceo broj. Referenca na dobiveno poklapanje. Na primer, “(.)\1" poklapa dva uzastopna ista znaka.
\n Identifikator osmostruko kodovanje ili vraćena referenca. Ako \n prethodi bar n dobivenih pod izraza, tada n jeste vraćena referenca. U suprotnom, ako n je osmostruko broj (0-7), onda n je osmostruko kodiranje.
\nm Identifikator osmostruko kodiranje ili vraćena referenca. Ako \nm prethodi bar nm dobivenih pod izraza, tada nm jeste vraćena referenca. Ako \nm prethodi bar n dobivenih, tada n jeste vraćena referenca nakon reči m.
\nml Ako je n osmostruko broj (0-3), i m i l su osmostruko brojevi (0-7), poklapanje sa osmostruko kodiranje nml.
\un Poklapa n, gde je n karakter Unicode predstavljen sa četiri šesnaestodesetnih brojeva. Na primer, \u00A9 poklapa simbol autorskih prava (©).
Uobičajeni regularni izrazi
Korisničko ime /^[a-z0-9_-]{3,16}$/
Lozinka /^[a-z0-9_-]{6,18}$/
Lozinka 2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (sadrži cifre/velika slova/mala slova/simbole; sva četiri moraju biti prisutna, više od 8 karaktera)
Hexadecimalna vrednost /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
E-mail adresa /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ ili \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ ili [a-zA-z]+://[^\s]*
IP adresa /((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)/
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ ili ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
HTML Tag /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ ili <(.*)(.*)>.*<\/\1>|<(.*) \/>
Ukloni kodove\\komentare (?<!http:|\S)//.*$
Poklapanje dvobajtnog karaktera (uključujući kineske znakove) [^\x00-\xff]
Kineski karakteri [\u4e00-\u9fa5]
Raspon kineskih karaktera u Unicode kodu /^[\u2E80-\u9FFF]+$/
Kineski i puni interpunkcijski znakovi (karakteri) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
Datum (Godina-Mesec-Dan) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
Datum (Mesec/Dan/Godina) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
Vreme (sati:minute, 24-satni format) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
Fiksni telefon u Kini (\d{4}-|\d{3}-)?(\d{8}|\d{7})
Mobilni telefon u Kini 1\d{10}
Poštanski broj u Kini [1-9]\d{5}
Kineski identifikacioni broj (15 ili 18 cifara) \d{15}(\d\d[0-9xX])?
Nenegativni celo broj (pozitivan ili nula) \d+
Pozitivan celo broj [0-9]*[1-9][0-9]*
Negativan celo broj -[0-9]*[1-9][0-9]*
Celo broj -?\d+
Decimalni broj (-?\d+)(\.\d+)?
Prazne linije \n\s*\r ili \n\n(editplus) ili ^[\s\S ]*\n
QQ broj [1-9]\d{4,}
Reči koje ne sadrže abc \b((?!abc)\w)+\b
Poklapanje početnog i krajnjeg praznog mesta ^\s*|\s*$
Uredi često koristi
Ovo su neka zamena za posebne kineske karaktere (editplus)
^[0-9].*\n
^[^第].*\n
^[习题].*\n
^[\s\S ]*\n
^[0-9]*\.
^[\s\S ]*\n
<p[^<>*]>
href="javascript:if\(confirm\('(.*?)'\)\)window\.location='(.*?)'"
<span style=".[^"]*rgb\(255,255,255\)">.[^<>]*</span>
<DIV class=xs0>[\s\S]*?</DIV>

Brzi pregled sintakse regularnih izraza - Tehnike i sintaksu uobičajenih regularnih izraza

Regularni izrazi su moćan alat za obradu teksta, ova stranica vam pruža brzi pregled sintakse regularnih izraza, koji će vam pomoći brzo da razumete osnovne sintakse, modifikatore, podizrazove, pohlepne i ne pohlepne obrasce itd.

Osnovna sintaksa regularnih izraza

Regularni izrazi se koriste za opisivanje pravila obrasaca stringova, a najčešća osnovna sintaksa uključuje:

Uobičajeni modifikatori regularnih izraza

Modifikatori regularnih izraza se koriste za promenu pravila poklapanja, najčešći modifikatori uključuju:

Pohlepni i ne pohlepni obrasci

U regularnim izrazima, kvantifikatori su po default-u pohlepni i poklapaju što je moguće više karaktera. Ne pohlepni obrazac se koristi dodavanjem ? iza kvantifikatora, kao što je u sledećem primeru:

Podizrazovi i grupisanje

Podizrazovi u regularnim izrazima se definišu korišćenjem zagrada ( ( ) ), često se koriste za izdvajanje poklapanih delova. Grupisanje se postiže pomoću „|” simbola. Na primer:

Brzi upit za regularne izraze

U nastavku se nalazi brzi upit za uobičajene regularne izraze:

Funkcija Regularni izraz
Poklapanje brojeva \d
Poklapanje ne brojeva \D
Poklapanje slova [a-zA-Z]
Poklapanje bilo kojeg znaka .
Poklapanje praznog znaka \s

Scenariji primene regularnih izraza

Regularni izrazi se široko primenjuju u sledećim scenarijima:

Saveti za učenje regularnih izraza

Odmah koristite naš brzi pregled sintakse regularnih izraza, kako biste postali efikasniji prilikom pisanja regularnih izraza i poboljšali svoje sposobnosti u obradi teksta!

Vaš trag:
Odaberi jezik