Regulāro izteiksmju sintakses ātrā atsauce

Regulārie izteikumi, pazīstami arī kā modeļu izteikumi, ir teksta paraugs, ko parasti izmanto teksta meklēšanai, maiņai un kontrolei. Tie galvenokārt ietver burtus no a līdz z un dažus īpašus metazīmes. Regulāro izteikumu pielietojuma sfēra ir ļoti plaša, sākotnēji to bija popularizējusi Unix, bet vēlāk tie tika plaši izmantoti valodās kā Scala, PHP, C#, Java, C++, Objective-C, Perl, Swift, VBScript, Javascript, Ruby un Python. Mācīšanās regulāros izteikumos patiesībā ir mācīšanās ļoti elastīgu loģisko domāšanu, saistot ar vienkāršām un ātrām metodēm, lai sasniegtu virkņu kontroli.
Regulāra zīme Apraksts
\ Marķē nākamo rakstzīmi kā speciālu rakstzīmi, vai kā parasto rakstzīmi, vai kā atpakaļ atsauci, vai kā astoņkārtīgu aizstāšanu. Piemēram, “n" atbilst rakstzīmei "n". "\n" atbilst jauna rindas rakstzīmei. Sekvences "\\" atbilst "\" un "\(" atbilst "(".
^ Atbilst ievades virknes sākuma pozīcijai. Ja ir iestatīta RegExp objekta Multiline īpašība, ^ arī atbilst “\n" vai "\r" pēc pozīcijām.
$ Atbilst ievades virknes beigām. Ja ir iestatīta RegExp objekta Multiline īpašība, $ arī atbilst “\n" vai "\r" pirms pozīcijām.
* Atbilst priekšējās apakšizteiksmes nullei vai vairākām reizēm. Piemēram, zo* var atbilst “z" un "zoo". * ir līdzvērtīgs {0,}.
+ Atbilst priekšējās apakšizteiksmes vienai vai vairākām reizēm. Piemēram, “zo+" var atbilst "zo" un "zoo", bet nevar atbilst "z". + ir līdzvērtīgs {1,}.
? Atbilst priekšējās apakšizteiksmes nullei vai vienai reizei. Piemēram, “do(es)?" var atbilst "does" vai "do" no "does". ? ir līdzvērtīgs {0,1}.
{n} n ir nedzīves vesels skaitlis. Atbilst noteiktam n reizei. Piemēram, “o{2}" nevar atbilst "Bob" rakstzīmei "o", bet var atbilst "food" divām o.
{n,} n ir nedzīves vesels skaitlis. Vismaz atbilst n reizes. Piemēram, “o{2,}" nevar atbilst "Bob" rakstzīmei "o", bet var atbilst "foooood" visiem o. "o{1,}" ir līdzvērtīgs "o+". "o{0,}" ir līdzvērtīgs "o*".
{n,m} m un n abi ir nedzīves veseli skaitļi, kur n<=m. Minimālās atbilstība n reizes un maksimālā atbilstība m reizes. Piemēram, “o{1,3}" var atbilst "fooooood" pirmajām trim o. "o{0,1}" ir līdzvērtīgs "o?". Lūdzu, ņemiet vērā, ka pirms komatu un abiem skaitļiem nedrīkst būt tukšuma.
? Kad šis raksts seko jebkuram citam ierobežotājam (*,+,?,{n},{n,},{n,m}) pēc tips, atbilstības modelis ir neizsalkušs. Neizsalkušais modelis mēģina atbilst iespējamā (mazāk) atbilstībai, kad noklusējuma izsalkušais modelis mēģina atbilst (lielākai) atbilstībai. Piemēram, oooo", "o+?" atbilst vienai o, savukārt "o+" atbilst visiem o.
. Atbilst jebkurai single rakstzīmei, izņemot \n. Lai atbilstu jebkurai rakstzīmei, tostarp \n, izmantot dzimuma modelis, piemēram, "(.|\n)".
(pattern) Atbilst pattern un iegūst šo atbilstību. Iegūtā atbilstība var tikt iegūta no radītā Matches kolekcijas, VBScript, izmantojot SubMatches kolekciju, savukārt JScript izmanto $0…$9 īpašību. Lai atbilstu apaļo iekavu rakstzīmēm, izmantojiet “\(" vai "\)".
(?:pattern) Atbilst pattern, bet neiegūst saskaņas rezultātu, t.i., šī ir neiegūstoša atbilstība, kas netiek saglabāta turpmākai lietošanai. Tas ir lietderīgs, ja izmantot vai simbols “(|)" apvienot modeļu sastāvdaļas. Piemēram, "industr(?:y|ies)" ir īsāks izteikums nekā "industry|industries".
(?=pattern) Pozitīva apliecinājuma priekšrozans, kas atbilst neatkarīgi no pattern saskaņotās virknes. Tas ir neiegūstoša atbilstība, t.i., šī atbilstība nav nepieciešama, lai iegūtu vēlākai lietošanai. Piemēram, “Windows(?=95|98|NT|2000)" var atbilst "Windows2000" no "Windows" un nevar atbilst "Windows3.1" no "Windows". Apliecināšana nepatērē rakstzīmes, t.i., pēc atbilstības notikuma, nākamā atbilstības meklēšana sākas tieši pēc pēdējās atbilstības, nevis no rakstzīmēm, kas ietver apliecināšanu.
(?!pattern) Negatīva apliecinājuma priekšrozans, kas atbilst neatkarīgi no nevis pattern saskaņotās virknes. Tas ir neiegūstoša atbilstība, t.i., šī atbilstība nav nepieciešama, lai iegūtu vēlākai lietošanai. Piemēram, “Windows(?!95|98|NT|2000)" var atbilst "Windows3.1" no "Windows" un nevar atbilst "Windows2000" no "Windows". Apliecināšana nepatērē rakstzīmes, t.i., pēc atbilstības notikuma, nākamajā atbilstības meklējumi sākas tieši pēc pēdējās atbilstības, nevis no rakstzīmēm, kas ietver apliecināšanu.
(?<=pattern) Negatīvā apliecinājuma priekšrozans, kas ir līdzīgs pozitīvai apliecinājuma priekšrozanas virziena, vienkārši pretējo virzienu. Piemēram, “(?<=95|98|NT|2000)Windows" var atbilst "2000Windows" un nevar atbilst "3.1Windows" no "Windows".
(?<!pattern) Negatīvā apliecinājuma priekšrozans, kas ir līdzīgs pozitīvai negatīvajai apliecinājuma priekšrozanas virziena, vienkārši pretējo virzienu. Piemēram, “(?<!95|98|NT|2000)Windows" var atbilst "3.1Windows" no "Windows" un nevar atbilst "2000Windows" no "Windows".
x|y Atbilst x vai y. Piemēram, “z|food" var atbilst "z" vai "food". "(z|f)ood" var atbilst "zood" vai "food".
[xyz] Rakstzīmju kopums. Atbilst jebkurai iekļautajai rakstzīmei. Piemēram, “[abc]" var atbilst "plain" rakstzīmei "a".
[^xyz] Negatīva rakstzīmju kopums. Atbilst jebkurai nesaturētai rakstzīmei. Piemēram, “[^abc]" var atbilst "plain" rakstzīmei "p".
[a-z] Rakstzīmju diapazons. Atbilst jebkurai rakstzīmei no noteiktā diapazona. Piemēram, “[a-z]" var atbilst jebkurai mazajai rakstzīmei no "a" līdz "z".
[^a-z] Negatīvs rakstzīmju diapazons. Atbilst jebkurai rakstzīmei, kas nav norādītajā diapazonā. Piemēram, “[^a-z]" var atbilst jebkurai rakstzīmei, kas nav no "a" līdz "z".
\b Atbilst vārda robežai, t.i., vietai starp vārdiem un tukšumiem. Piemēram, “er\b" var atbilst "never" rakstzīmei "er", bet nevar atbilst "verb" rakstzīmei "er".
\B Atbilst ne-vārda robežai. “er\B" var atbilst "verb" rakstzīmei "er", bet nevar atbilst "never" rakstzīmei "er".
\cx Atbilst kontroles rakstzīmei, kas norādīta ar x. Piemēram, \cM atbilst Kontrol-M vai atgriešanās rakstzīmei. x vērtība jābūt A-Z vai a-z. Pretējā gadījumā c tiek uzskatīts par parastu rakstzīmi “c".
\d Atbilst skaitļu rakstzīmei. Līdzvērtīgs [0-9].
\D Atbilst neskaņām rakstzīmēm. Līdzvērtīgs [^0-9].
\f Atbilst jauna lapas rakstzīmei. Līdzvērtīgs \x0c un \cL.
\n Atbilst jauna rindas rakstzīmei. Līdzvērtīgs \x0a un \cJ.
\r Atbilst atgriešanās rakstzīmei. Līdzvērtīgs \x0d un \cM.
\s Atbilst jebkurai tukšajai rakstzīmei, ieskaitot tukšumus, tabulatīvos, jauna lapas rakstzīmes utt. Līdzvērtīgs [ \f\n\r\t\v].
\S Atbilst jebkurai ne-tukšajai rakstzīmei. Līdzvērtīgs [^ \f\n\r\t\v].
\t Atbilst tabulatora rakstzīmei. Līdzvērtīgs \x09 un \cI.
\v Atbilst vertikālajai tabulatora rakstzīmei. Līdzvērtīgs \x0b un \cK.
\w Atbilst jebkurai vārda rakstzīmei, tostarp apakšsvītrošanai. Līdzvērtīgs “[A-Za-z0-9_]".
\W Atbilst jebkurai ne-vārda rakstzīmei. Līdzvērtīgs “[^A-Za-z0-9_]".
\xn Atbilst n, kur n ir heksadecimāls pārākums. Heksadecimāls pārākums jāsastāv no noteikta diviem cipariem garums. Piemēram, “\x41" atbilst "A". "\x041" ir līdzvērtīgs "\x04&1". Regulāro izteikumu var izmantot ASCII kodējumu.
\num Atbilst num, kur num ir pozitīvs vesels skaitlis. Atsauces uz iegūto atbilstību. Piemēram, “(.)\1" atbilst divām pēc kārtas esošām identiskām rakstzīmēm.
\n Norāda astoņkārtīgu kaitējumu vai atpakaļ atsauci. Ja \n iepriekš ir vismaz n iegūti apakšizteikumi, tad n ir atpakaļ atsauce. Ja \n ir astoņkārtīgi cipari (0-7), tad n ir astoņkārtīgs pārākums.
\nm Norāda astoņkārtīgu kaitējumu vai atpakaļ atsauci. Ja \nm iepriekš ir vismaz nm iegūti apakšizteikumi, tad nm ir atpakaļ atsauce. Ja \nm iepriekš ir vismaz n iegūti, tad n ir atpakaļ atsauce, to seko rakstzīme m. Ja iepriekšējie nosacījumi netiek apmierināti, ja n un m ir astoņkārtīgi cipari (0-7), tad nm atbilst astoņkārtīgajam pārākumam nm.
\nml Ja n ir astoņkārtīgs skaitlis (0-3), un m un l ir astoņkārtīgi skaitļi (0-7), tad atbilst astoņkārtīgajam pārākumam nm.
\un Atbilst n, kur n ir Unicode rakstzīme, kas pārstāvēta četru heksadecimālo ciparu formā. Piemēram, \u00A9 atbilst autortiesību simbolam (©).
Bieži izmantotie regulārie izteikumi
lietotājvārds /^[a-z0-9_-]{3,16}$/
parole /^[a-z0-9_-]{6,18}$/
parole2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (sastāv no cipariem/ļauju lielajiem burtiem/mazajiem burtiem/punkta, visi četri ir obligāti, vismaz 8 zīmes)
sešpadsmitniek vērtība /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
e-pasts /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ vai \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ vai [a-zA-z]+://[^\s]*
IP adrese /((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]?)$/ vai ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
HTML zīmes /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ vai <(.*)(.*)>.*<\/\1>|<(.*) \/>
izdzēst kodu\\komentārus (?<!http:|\S)//.*$
Atbilst divu burtu rakstzīmēm (ieskaitot ķīniešu rakstzīmes) [^\x00-\xff]
Ķīniešu rakstzīmes (rakstzīmes) [\u4e00-\u9fa5]
Unicode kodējums ķīniešu rakstzīmēm /^[\u2E80-\u9FFF]+$/
Ķīniešu un pilnās punktu zīmes (rakstzīmes) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
Datums (gads-mēnesis-diena) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
Datums (mēnesis/diena/gads) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
Laiks (stundas:minūtes, 24 stundas) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
Ķīnas fiksēto tālruņu numuri (\d{4}-|\d{3}-)?(\d{8}|\d{7})
Ķīnas mobilie numuri 1\d{10}
Ķīnas pasta indeksu [1-9]\d{5}
Ķīnas personas ID numuri (15 vai 18 zīmes) \d{15}(\d\d[0-9xX])?
Ne-nododamu skaitļi (pozitīvie skaitļi vai nulle) \d+
Pozitīvi skaitļi [0-9]*[1-9][0-9]*
Negatīvi skaitļi -[0-9]*[1-9][0-9]*
Skaitļi -?\d+
Decimālskaitļi (-?\d+)(\.\d+)?
Tukšās rindas \n\s*\r vai \n\n(editplus) vai ^[\s\S ]*\n
QQ numuri [1-9]\d{4,}
Atbilst vārdiem bez abc \b((?!abc)\w)+\b
Atbilst sākuma un beigām tukšajām rakstzīmēm ^\s*|\s*$
Rediģēt bieži izmantotu
Šeit ir dažas aizvietošanas (editplus) par specifiskiem ķīniešu rakstiem
^[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>

Regulāro izteikumu sintakse Quick Reference - Bieži izmantojami regulāro izteikumu padomi un sintakse

Regulārie izteikumi ir spēcīgs teksta apstrādes rīks. Šī lapa nodrošina jums bieži izmantojamu regulāro izteikumu sintakses Quick Reference, kas palīdzēs jums ātri saprast regulāro izteikumu pamata sintaksi, modifikatorus, apakšizteiksmē, izsalkšanas režīmu un neizsalkšanas režīmu utt.

Regulāro izteikumu pamata sintakse

Regulārie izteikumi tiek izmantoti, lai aprakstītu rakstzīmju paraugu noteikumus. Visbiežāk sastopamā pamata sintakse ir:

Bieži izmantojami regulāro izteikumu modifikatori

Regulāro izteikumu modifikatori tiek izmantoti, lai mainītu regulāro izteikumu atbilstības noteikumus. Visbiežāk sastopamie modifikatori ir:

Izsalkšanas režīms un neizsalkšanas režīms

Regulārajos izteikumos skaitļa modifikatori noklusējuma ir izsalkuši un mēģina atbilst visvairāk rakstzīmes. Neizsalkšanas režīms tiek izmantots, pievienojot ? pēc skaitļa modifikatoriem, piemēram:

Apakšizteiksmes un grupas

Regulārajos izteikumos apakšizteiksmes tiek definētas ar iekavām (( )) un tās bieži tiek izmantotas, lai izceltu atbilstību. Grupas var izveidot, izmantojot "|" simbolu. Piemēram:

Regulāro izteikumu ātra meklēšana

Šeit ir regulāro izteikumu ātrās meklēšanas saraksts:

Funkcija Regulārais izteikums
Atbilst skaitļiem \d
Atbilst ne-skaitļiem \D
Atbilst burtiem [a-zA-Z]
Atbilst jebkurai rakstzīmei .
Atbilst tukšajām rakstzīmēm \s

Regulāro izteikumu Lietošanas jomas

Regulārie izteikumi tiek plaši izmantoti šādos gadījumos:

Mācīšanās regulāros izteikumos mazas padomas

Izmantojiet mūsu regulāro izteikumu sintakses Quick Reference, lai padarītu savu regulāro izteikumu kodēšanu efektīvāku un uzlabotu tekstu apstrādes spējas!

Jūsu pēdas:
Izvēlieties valodu