Reguliariosios išraiškos sintaksės greitasis užrašas

Reguliariosios išraiškos, dar vadinamos taisyklių išraiškomis, yra tekstų modeliai, dažniausiai naudojami tekstui ieškoti, pakeisti ir valdyti. Jos apima raidžių a iki z raides ir keletą specialių simbolių. Reguliariųjų išraiškų taikymo sritis yra labai plati, jos iš pirmo karto buvo paplitusios Unix, vėliau buvo plačiai taikomos Scala, PHP, C#, Java, C++, Objective-C, Perl, Swift, VBScript, Javascript, Ruby ir Python. Mokymasis reguliarių išraiškų iš esmės yra lankstaus logiško mąstymo mokymasis, leidžiantis kontroliuoti tekstus paprasčiau ir greičiau.
Reguliarioji simbolis Aprašymas
\ Pažymi kitą simbolį kaip specialų simbolį, reikiamą simbolį, atgalinį nuorodą arba aštuonių skaičių pabėgimą. Pavyzdžiui, “n" atitinka simbolį "n". "\n" atitinka naujos eilutės simbolį. Sekvencijos "\\" atitinka "\", nors "\(" atitinka "(".
^ Atitinka įvesties simbolių pradžios vietą. Jei RegExp objekto Multiline savybė yra nustatyta, ^ taip pat atitinka vietas po “\n" arba "\r".
$ Atitinka įvesties simbolių pabaigos vietą. Jei RegExp objekto Multiline savybė yra nustatyta, $ taip pat atitinka vietas prieš “\n" arba "\r".
* Atitinka pirmiau pateiktą sub-izrazą nulį arba daugiau kartų. Pavyzdžiui, zo* gali atitikti “z" ir "zoo". * yra lygu {0,}.
+ Atitinka pirmiau pateiktą sub-izrazą bent kartą arba daugiau. Pavyzdžiui, “zo+" gali atitikti "zo" ir "zoo", tačiau negali atitikti "z". + yra lygu {1,}.
? Atitinka pirmiau pateiktą sub-izrazą nulį arba kartą. Pavyzdžiui, “do(es)?" gali atitikti "does" ar "does" dalyje "do". ? yra lygu {0,1}.
{n} n yra neigiamas skaičius. Atitinka konkretų n kartą. Pavyzdžiui, “o{2}" negali atitikti "Bob" raide "o", tačiau gali atitikti "food" su dviem &o.
{n,} n yra neigiamas skaičius. Atitinka bent n kartą. Pavyzdžiui, “o{2,}" negali atitikti "Bob" raide "o", tačiau gali atitikti "foooood" visus laiškus. "o{1,}" yra lygu "o+". "o{0,}" yra lygu "o*".
{n,m} m ir n yra neigiamas skaičius, kur n<=m. Atitinka bent n kartus ir daugiausiai m kartus. Pavyzdžiui, “o{1,3}" atitiks "fooooood" pirmajam trims &o. "o{0,1}" yra lygu "o?". Atminkite, kad tarp kablelio ir dviejų skaičių negali būti tarpų.
? Kai šis simbolis seka bet kurį kitą ribojantį simbolį (*, +, ?, {n}, {n,}, {n,m}) , atitiks modelis bus nedorovingas. Nedorovingas modelis atitinka ieškomą tekstą kiek galima mažiau, o numatymas atitinka kuo daugiau ieškomo teksto. Pavyzdžiui, ieškant simbolių “oooo", "o+?" atitiks vieną "o", o "o+" atitiks visus "o".
. Atitinka bet kokį vieną simbolį, išskyrus “\n". Norėdami atitikti bet kokį simbolį, įskaitant "\n", naudokite tokią modelio "(.|\n)".
(pattern) Atitinka pattern ir gauna šį atitikimą. Gautas atitikimas gali būti gaunamas iš pagaminto Matches rinkinio, VBScript naudojamas SubMatches rinkinyje, o JScript - $0…$9 atributuose. Norėdami atitikti apvalių skliaustų simbolius, naudokite “\(" arba "\)".
(?:pattern) Atitinka pattern, bet negauna atitikimo, tai yra, tai nedarantis modelis, kuris nenaudoja atitikimo, kad galėtų panaudoti vėliau. Tai naudinga, kai naudojate arba simbolį “(|)" sujungti modelio dalis. Pavyzdžiui, "industr(?:y|ies)" yra trumpesnis nei "industry|industries".
(?=pattern) Tiesioginis teigiamas paieška atitinka paieškos simbolius, kurie prasideda tai atitinkančia simboliu. Tai nedarantis atitikimas, kitaip tariant, šis atitikimas nereikia išsaugoti tolesniam naudojimui. Pavyzdžiui, “Windows(?=95|98|NT|2000)" gali atitikti "Windows2000" simbolį "Windows", bet negali atitikti "Windows3.1" simboliu "Windows". Paieška nepaima simbolių, tai yra, po atitikimo, po paskutinio atitikimo momentu, prasideda nauja paieška, o ne prasideda po simbolių, kurie įtraukia paiešką.
(?!pattern) Tiesioginis neigiamas paieška, atitinka paieškos ženklą, kuris neatitinka tai atitinkančios simbolių. Tai nedarantis atitikmas, kitaip tariant, šis atitikmas nereikia išsaugoti tolesniam naudojimui. Pavyzdžiui“Windows(?!95|98|NT|2000)" gali atitikti "Windows3.1" simbolį "Windows", bet negali atitikti "Windows2000" simbolio "Windows". Paieška nepaima simbolių, tai yra, po atitikimo, po paskutinio atitikimo momentu, prasideda nauja paieška, o ne prasideda po simbolių, kurie įtraukia paiešką.
(?<=pattern) Atvirkštinis teigiamas paieška, panašus į tiesioginį teigiamą paiešką, tiesiog su pasikeitusiu kryptimi. Pavyzdžiui, “(?<=95|98|NT|2000)Windows" gali atitikti "2000Windows" simbolį "Windows", bet negali atitikti "3.1Windows" simbolio "Windows".
(?<!pattern) Atvirkštinis neigiamas paieška, panašus į tiesioginį neigiamą paiešką, tik su pasikeitusiu kryptimi. Pavyzdžiui“(?<!95|98|NT|2000)Windows" gali atitikti "3.1Windows" simbolį "Windows", bet negali atitikti "2000Windows" simbolio "Windows".
x|y Atitinka x arba y. Pavyzdžiui, “z|food" gali atitikti "z" arba "food". "(z|f)ood" atitiks "zood" arba "food".
[xyz] Simbolių rinkinys. Atitinka bet kurį iš įtrauktų simbolių. Pavyzdžiui, “[abc]" gali atitikti "plain" simbolį "a".
[^xyz] Neigiamas simbolių rinkinys. Atitinka bet kurį simbolį, kuris nėra įtrauktas. Pavyzdžiui, “[^abc]" gali atitikti "plain" simbolį "p".
[a-z] Simbolių intervalas. Atitinka bet kurį simbolį iš nurodyto intervalo. Pavyzdžiui, “[a-z]" gali atitikti bet kurį mažąjį simbolį nuo "a" iki "z".
[^a-z] Neigiamas simbolių intervalas. Atitinka bet kurį simbolį, kuris nėra nurodytame intervale. Pavyzdžiui, “[^a-z]" gali atitikti bet kurį simbolį, kuris nėra intervale nuo "a" iki "z".
\b Atitinka žodžio ribą, tai yra, vietą tarp žodžio ir tarpų. Pavyzdžiui, “er\b" gali atitikti "never" žodyje "er", tačiau negali atitikti "verb" žodyje "er".
\B Atitinka ne žodžio ribą. “er\B" gali atitikti "verb" žodyje "er", tačiau negali atitikti "never" žodyje "er".
\cx Atitinka kontrolinės simbolių, kurį nurodo x. Pavyzdžiui, \cM atitinka Control-M arba naujos eilutės simbolį. x vertė turi būti viena iš A-Z arba a-z. Priešingu atveju, c laikoma paprasta "c" simboliu.
\d Atitinka skaitmenų simbolį. Lygu [0-9].
\D Atitinka ne skaitmenų simbolį. Lygu [^0-9].
\f Atitinka puslapių simbolį. Lygu \x0c ir \cL.
\n Atitinka naujos eilutės simbolį. Lygu \x0a ir \cJ.
\r Atitinka grąžinimo simbolį. Lygu \x0d ir \cM.
\s Atitinka bet kurį tarpą simbolį, įskaitant tarpus, tabulius, puslapių simbolius ir kt. Lygu [ \f\n\r\t\v].
\S Atitinka bet kurį ne tarpą simbolį. Lygu [^ \f\n\r\t\v].
\t Atitinka tabulių simbolį. Lygu \x09 ir \cI.
\v Atitinka vertikalų tabulių simbolį. Lygu \x0b ir \cK.
\w Atitinka visus žodžio simbolius, įskaitant pabraukimo simbolį. Lygu “[A-Za-z0-9_]".
\W Atitinka bet kurį ne žodžio simbolį. Lygu “[^A-Za-z0-9_]".
\xn Atitinka n, kur n yra šešioliktainių pabėgimų vertė. Šešioliktainių pabėgimų vertė turi būti fiksuoti du skaičiai. Pavyzdžiui, “\x41" atitinka "A". "\x041" yra lygu "\x04&1". Reguliarioje išraiškoje galima naudoti ASCII kodą.
\num Atitinka num, kur num yra teigiamas skaičius. Yra nuoroda į gautą atitikimą. Pavyzdžiui, “(.)\1" atitinka du iš eilės esančius tuos pačius simbolius.
\n Nurodo aštuonių skaičių pabėgimo vertę arba atgalinę nuorodą. Jei \n prieš tai turėjo bent n gautas sub-izras, tuomet n yra atgalinė nuoroda. Priešingu atveju, jei n yra aštuonios skaitmenys (0-7), tuomet n bus aštuonių skaičių pabėgimo vertė.
\nm Nurodo aštuonių skaičių pabėgimo vertę arba atgalinę nuorodą. Jei \nm prieš tai turėjo bent nm gautas sub-izras, tuomet nm bus atgalinė nuoroda. Jei \nm prieš tai turėjo bent n gautą, tuomet n būtų atgalinė nuoroda su žodžiu, sekonančiu m. Jei nė vienas iš šių sąlygų neatitinka, jei n ir m yra aštuonių skaitmenys (0-7), tuomet \nm atitiks aštuonių skaičių pabėgimo vertę nm.
\nml Jei n yra aštuonių skaitmenys (0-3), o m ir l abi yra aštuonių skaitmenys (0-7), tuomet atitiks aštuonių skaičių pabėgimo vertę nml.
\un Atitinka n, kur n yra keturių šešioliktainių simbolių atvaizduojama Unicode simbolis. Pavyzdžiui, \u00A9 atitinka autorių teisų simbolį (©).
Dažnai naudojamos reguliariosios išraiškos
Vartotojo vardas /^[a-z0-9_-]{3,16}$/
Slaptažodis /^[a-z0-9_-]{6,18}$/
Slaptažodis 2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (sudarytas iš skaitmenų/ Didžiųjų rašmenų/ Mažųjų rašmenų/ Skyrybos simbolių, visi keturi būtini, 8 ženklai ar daugiau)
Šešiakampė vertė /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
El.paštas /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ arba \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ arba [a-zA-z]+://[^\s]*
IP adresas /((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]?)$/ arba ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
HTML etiketė /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ arba <(.*)(.*)>.*<\/\1>|<(.*) \/>
Ištrinti kodą\\ komentarus (?<!http:|\S)//.*$
Atitikti dvibaitį simbolį (įskaitant kinų simbolius) [^\x00-\xff]
Kinų simbolis (žodis) [\u4e00-\u9fa5]
Kinų simbolių diapazonas Unicode koduose /^[\u2E80-\u9FFF]+$/
Kinų ir pilno pločio interpunkcijos simboliai (žodis) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
Data (metai-mėnuo-diena) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
Data (mėnuo/diena/metai) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
Laikas (valandos:minutes, 24 valandų formatas) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
Kinijos continente fiksuotasis telefonas (\d{4}-|\d{3}-)?(\d{8}|\d{7})
Kinijos continente mobilusis telefonas 1\d{10}
Kinijos continente pašto kodas [1-9]\d{5}
Kinijos continente asmens tapatybės kortelių numeris (15 arba 18 simbolių) \d{15}(\d\d[0-9xX])?
Neigiamas skaičius (teigiamas skaičius arba nulis) \d+
Teigiamas skaičius [0-9]*[1-9][0-9]*
Neigiamas skaičius -[0-9]*[1-9][0-9]*
Skaičius -?\d+
Skaičius su kableliu (-?\d+)(\.\d+)?
Tuščia eilutė \n\s*\r arba \n\n(editplus) arba ^[\s\S ]*\n
QQ numeris [1-9]\d{4,}
Žodžiai, kurie neturi abc \b((?!abc)\w)+\b
Atitikti pirmus ir paskutinius tarpinius simbolius ^\s*|\s*$
Redagavimo dažniausiai naudojamas
Štai keletas pakeitimų specialiesiems kinų ženklams (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>

Reguliarių išraiškų sintaksės santrauka - dažniausiai naudojami reguliarių išraiškų triukai ir sintaksė

Reguliariosios išraiškos yra galingas tekstų apdorojimo įrankis, šis puslapis teikia dažniausiai naudojamą reguliarių išraiškų sintaksės santrauką, padedančią greitai susipažinti su reguliarių išraiškų pagrindine sintakse, modifikatoriais, sub-izrais, godžiu ir nedorovingu režimu.

Reguliarių išraiškų pagrindinė sintaksė

Reguliariosios išraiškos naudojamos aprašyti simbolių modelių taisykles, įprasta pagrindinė sintaksė apima:

Dažniausiai naudojami reguliarių išraiškų modifikatoriai

Reguliarių išraiškų modifikatoriai keičia reguliarių išraiškų atitikimo taisykles, dažniausiai naudojami modifikatoriai apima:

Godus ir nedorovingas režimas

Reguliariosiose išraiškose, kiekio operatoriai numatytai yra godūs, jie stengiasi atitikti kuo daugiau simbolių. Nedorovingas režimas naudojamas pridėjus ? prie kiekio operatoriaus, pavyzdžiui:

Sub-izrai ir grupės

Sub-izrai reguliariose išraiškose yra apibrėžiami naudojant skliaustus ( ( ) ), dažniausiai naudojami atitikimo dalių gavimui. Grupės atliekamos simboliu “|”. Pavyzdžiui:

Reguliarių išraiškų greitas ieškojimas

Žemiau yra greitas nuorodos reguliarioms išraiškoms:

Funkcija Reguliariosios išraiškos
Atitinka skaitmenis \d
Atitinka neskaitymo simbolius \D
Atitinka raides [a-zA-Z]
Atitinka bet kurį simbolį .
Atitinka tarpo simbolius \s

Reguliarių išraiškų taikymo scenarijai

Reguliariosios išraiškos plačiai taikomos šiais scenarijais:

Mokymosi apie reguliarių išraiškų patarimai

Iš karto naudokite mūsų reguliarių išraiškų sintaksės santrauką , kurioje jums bus paprasčiau ir greičiau kurti reguliarių išraiškų sintaksę, didinant jūsų teksto apdorojimo sugebėjimus!

Jūsų pėdsakai:
Pasirinkti kalbą