Регулярлы өрнек синтаксисінің қысқаша анықтамалығы

Регулярлық өрнек - бұл мәтін үлгісі, әдетте мәтінді іздеу, ауыстыру және басқару үшін қолданылады. Негізінен a-дан z-ға дейінгі әріптер және кейбір арнайы метасимволдарды қамтиды. Регулярлық өрнектердің қолдану аясы өте кең, бастапқыда Unix-та кеңінен қолданылды, кейінірек Scala, PHP, C#, Java, C++, Objective-C, Perl, Swift, VBScript, Javascript, Ruby және Python-да кеңінен қолданылды. Регулярлық өрнектерді үйрену - шын мәнінде, жолдарды басқарудың қарапайым және жылдам жолмен қол жеткізу үшін өте икемді логикалық ойлауды үйрену.
Регулярлық символ Сипаттама
\ Келесі символды арнайы символ, немесе дәл символ, немесе кері сілтеме, немесе сегіздік таңбалауышы ретінде белгілеу. Мысалы, “n" символын жұптастырады. "\n" жаңа жол символын жұптастырады. "\\" символын жұптастырады, ал "\(" "(" символын жұптастырады.
^ Кіру жолының басталуын сәйкестендіреді. Егер RegExp объектісі Multiline атрибуты орнатылған болса, ^ символы “\n" немесе "\r" кейінгі орынды да сәйкестендіреді.
$ Кіру жолының аяқталуын сәйкестендіреді. Егер RegExp объектісі Multiline атрибуты орнатылған болса, $ символы “\n" немесе "\r" алдындағы орынды да сәйкестендіреді.
* Алдыңғы қосалқы өрнекті нөл немесе бірнеше рет сәйкестендіреді. Мысалы, zo* “z" және "zoo" ұялып алады. * ≡ {0,}.
+ Алдыңғы қосалқы өрнекті бір немесе бірнеше рет сәйкестендіреді. Мысалы, “zo+" "zo" және "zoo" ұялып алады, бірақ "z" ұялып алмайды. + ≡ {1,}.
? Алдыңғы қосалқы өрнекті нөл немесе бір рет сәйкестендіреді. Мысалы, “do(es)?" "does" немесе "does" ішіндегі "do" бойынша сәйкестендіре алады. ? ≡ {0,1}.
{n} n - нөлдік емес бүтін сан. Белгіленген n рет сәйкестендіреді. Мысалы, “o{2}" "Bob" ішіндегі "o" жойып жібереді, бірақ "food" ішіндегі екі o сәйкестендіреді.
{n,} n - нөлдік емес бүтін сан. Ең кемінде n рет сәйкестендіреді. Мысалы, “o{2,}" "Bob" ішіндегі "o" жойып жібереді, бірақ "foooood" ішіндегі барлық o сәйкестендіреді. "o{1,}" ≡ "o+" және "o{0,}" ≡ "o*".
{n,m} m және n - нөлдік емес бүтін сандар, мұндағы n <= m. Ең кемінде n рет және ең көбі m рет сәйкестендіреді. Мысалы, “o{1,3}" "fooooood" ішіндегі алғашқы үш o-ны сәйкестендіреді. "o{0,1}" ≡ "o?", ескерту: қосымша белгілер мен екі санның арасында бос орын болмауы тиіс.
? Кез келген басқа шектеуші символдың (*, +, ?, {n} , {n,} , {n,m}) артына келгенде сәйкестендіру үлгісі тойымсыз емес. Тойымсыз үлгі мүмкіндігінше аз сәйкестендіреді, ал әдепкі тойымсыз үлгі мүмкіндігінше көп сәйкестендіреді. Мысалы, “oooo" үшін, "o+?" бір "o", ал "o+" барлық "o" сәйкестендіреді.
. \n” символынан басқа кез келген бірегей символды сәйкестендіреді. "\n" символын қосқанда кез келген символды сәйкестендіру керек болса, "(.|\n)" үлгісін пайдаланыңыз.
(pattern) pattern сәйкестендіреді және бұл сәйкестікті алады. Алынған сәйкестендіру Matches жиынтығынан алына алады, VBScript-тегі SubMatches жиынтығында, JScript-тегі $0…$9 атрибутында. Дөңгелек жақша символын сәйкестендіру үшін "“\(" немесе "\)" қолданыңыз.
(?:pattern) pattern сәйкестендіреді, бірақ сәйкестендіру нәтижесін алмайды, яғни бұл алымсыз сәйкестендіруші, кейінгі пайдалануға сақталмайды. Бұл үлгінің әртүрлі компоненттерін біріктіру үшін | символын пайдалану ыңғайлы. Мысалы, "industr(?:y|ies)" "industry|industries"-дан гөрі қысқа өрнек.
(?=pattern) Тікелей растайтын алдын-ала іздеу; pattern-ді сәйкестендірсе, басқа іздеу жолының басында сәйкестікті іздейді. Бұл алымсыз сәйкестендіру, яғни бұл сәйкестендіру кейінгі пайдалану үшін алынбайды. Мысалы, “Windows(?=95|98|NT|2000)" "Windows2000" ішіндегі "Windows" -ды сәйкестендіреді, бірақ "Windows3.1" -дегі "Windows" -ды сәйкестендірмейді. Алдын-ала іздеу символдарды жұмсамайды, яғни сәйкестендіру аяқталған соң, соңғы сәйкестендіруден кейін келесі сәйкестендіру зерттеуді бастайды, алдын-ала іздеу символдарын қамтитын символдардан емес.
(?!pattern) Тікелей терістейтін алдын-ала іздеу; pattern-ді сәйкестендірмейтін жолдың басында ізделіп жатқан жолды сәйкестендіреді. Бұл алымсыз сәйкестендіру, яғни бұл сәйкестендіру кейінгі пайдалану үшін алынбайды. Мысалы, “Windows(?!95|98|NT|2000)" "Windows3.1" ішіндегі "Windows" -ды сәйкестендіреді, бірақ "Windows2000" ішіндегі "Windows" -ды сәйкестендірмейді. Алдын-ала іздеу символдарды жұмсамайды, яғни сәйкестендіру аяқталғаннан кейін, соңғы сәйкестендіруден кейін келесі сәйкестендіруге зерттеу бастайды, алдын-ала іздеу символдарын қамтитын символдардан емес.
(?<=pattern) Кері растайтын алдын-ала іздеу; тікелей растайтын алдын ала іздеу сияқты, тек бағытында. Мысалы, “(?<=95|98|NT|2000)Windows" "2000Windows" ішіндегі "Windows" -ды сәйкестендіреді, бірақ "3.1Windows" ішіндегі "Windows" -ды сәйкестендірмейді.
(?<!pattern) Тікелей терістейтін алдын-ала іздеу; тікелей терістейтін алдын ала іздеу сияқты, тек бағытында. Мысалы, “(?<!95|98|NT|2000)Windows" "3.1Windows" ішіндегі "Windows" -ды сәйкестендіреді, бірақ "2000Windows" ішіндегі "Windows" -ды сәйкестендірмейді.
x|y x немесе y сәйкестендіреді. Мысалы, “z|food" "z" немесе "food" -ды сәйкестендірмейді. "(z|f)ood" "zood" немесе "food" -ды сәйкестендіреді.
[xyz] Символдар жиынтығы. Туындаған кез келген символды сәйкестендіреді. Мысалы, “[abc]" "plain" -дағы "a" -ны сәйкестендіреді.
[^xyz] Теріс символдар жиынтығы. Жиынтықта берілмеген кез келген символды сәйкестендіреді. Мысалы, “[^abc]" "plain" -дағы "p" -ны сәйкестендіреді.
[a-z] Символдар диапазоны. Белгіленген диапазондағы кез келген символды сәйкестендіреді. Мысалы, “[a-z]" "a" -дан "z" -ға дейінгі кез келген төменгі регистр символын өткеруші.
[^a-z] Теріс символдар диапазоны. Белгіленген диапазоннан тыс кез келген символды сәйкестендіреді. Мысалы, “[^a-z]" "a" -дан "z" -ға дейінгі кез келген символды өткеруші.
\b Сөз шекарасына сәйкестендіреді, яғни сөз бен кеңістік арасындағы орынды білдіреді. Мысалы, “er\b" "never" -дағы "er" -ды сәйкестендіреді, бірақ "verb" -дағы "er" -ды сәйкестендірмейді.
\B Сөз шекарасына сәйкестендіреді. “er\B" "verb" -дағы "er" -ды сәйкестендіреді, бірақ "never" -тағы "er" -ды сәйкестендірмейді.
\cx x арқылы белгіленген басқарушы символды сәйкестендіреді. Мысалы, \cM Control-M немесе қайту символын сәйкестендіреді. x-тің мәні A-Z немесе a-z-ның біреуі болуы керек. Әйтпесе, c “c" символының дәл мәнін алу.
\d Бір сан символын сәйкестендіреді. ≡ [0-9].
\D Бір сан емес символды сәйкестендіреді. ≡ [^0-9].
\f Беттеу символын сәйкестендіреді. ≡ \x0c және \cL.
\n Жаңа жол символын сәйкестендіреді. ≡ \x0a және \cJ.
\r Қайту символын сәйкестендіреді. ≡ \x0d және \cM.
\s Кез келген бос символды сәйкестендіреді, соның ішінде бос орын, табуляция, беттеу символы және т.б. ≡ [ \f\n\r\t\v].
\S Кез келген бос символ болмайтын символды сәйкестендіреді. ≡ [^ \f\n\r\t\v].
\t Бір табуляция символын сәйкестендіреді. ≡ \x09 және \cI.
\v Бір тік табуляция символын сәйкестендіреді. ≡ \x0b және \cK.
\w Нысан символы сияқты, соның ішінде сызықша. ≡ “[A-Za-z0-9_]" .
\W Кез келген сөз емес символды сәйкестендіреді. ≡ “[^A-Za-z0-9_]" .
\xn n сәйкестендіреді, мұндағы n - он алтылы белгілері бар. Он алтылы освободительность міндетті түрде 2 санға сай болуы керек. Мысалы, “\x41" "A" -ды сәйкестендіреді. "\x041" "\x04&1" -ға тең. Регулярлық өрнек ASCII кодын пайдалануға болады.
\num num сәйкестендіреді, мұндағы num - оң бүтін сан. Алынған сәйкестендіру сілтемесі. Мысалы, “(.)\1" екі ілескен біріктірілген символдар.
\n Сегіздік сан белгілері немесе кері сілтеме. Егер n кемінде n алынған қосалқы өрнек болса, n кері сілтеме болады. Әйтпесе, егер n сегіздік сан (0-7) болса, n сегіздік сілтеме болады.
\nm Сегіздік сан белгілері немесе кері сілтеме. Егер nm кемінде nm алынған қосалқы өрнек болса, nm кері сілтеме. Егер nm кемінде n алынған болса, nm текстен кейін тұрған m кері сілтеме болады. Егер жоғарыда бөлінген шарттар орындалмаса, eger n және m сегіздік сандар (0-7) болса, онда nm сегіздік сілтеме болады.
\nml Егер n сегіздік сан (0-3) болса, және m мен l сегіздік сандар (0-7) болса, онда сегіздік сілтеме таңбасы nml.
\un n сәйкестендіреді, мұндағы n төрт он алтылы цифрмен көрсетілген Unicode ортасындағы символ. Мысалы, \u00A9 авторлық құқық символын (©) сәйкестендіреді.
Жиі қолданылатын регулярлық өрнектер
Пайдаланушы аты /^[a-z0-9_-]{3,16}$/
Пароль /^[a-z0-9_-]{6,18}$/
Пароль 2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (сандар/бас әріптер/кіші әріптер/пунктуациядан тұрады, төрт түрі де болуы керек, 8 символдан жоғары)
Hexadecimal мәні /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
Электрондық пошта /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ немесе \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ немесе [a-zA-z]+://[^\s]*
IP-адрес /((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]?)$/ немесе ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)
HTML тегтері /^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/ немесе <(.*)(.*)>.*<\/\1>|<(.*) \/>
Кодты/түсініктемені жою (?<!http:|\S)//.*$
Екі байттық символдарды сәйкестендіру (қазақша символдарды da қоса алғанда) [^\x00-\xff]
Қазақша символ (символ) [\u4e00-\u9fa5]
Unicode кодындағы қазақша символдар диапазоны /^[\u2E80-\u9FFF]+$/
Қазақша және толық пунктуация символдары (символ) [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
Күн (жыл-ай-күн) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
Күн (ай/күн/жыл) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
Уақыт (сағат:минут, 24-сағаттық) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
Қытайдың стационарлы телефон нөмірі (\d{4}-|\d{3}-)?(\d{8}|\d{7})
Қытайдың мобильді телефондары 1\d{10}
Қытай пошта индекстері [1-9]\d{5}
Қытай шеткері нөмірлері (15 цифрға немесе 18 цифрға дейін) \d{15}(\d\d[0-9xX])?
Теріс сандар (оң сандар немесе нөл) \d+
Оң сандар [0-9]*[1-9][0-9]*
Теріс сандар -[0-9]*[1-9][0-9]*
Бүтін сандар -?\d+
Дробь (-?\d+)(\.\d+)?
Бос жолдар \n\s*\r немесе \n\n(editplus) немесе ^[\s\S ]*\n
QQ нөмірі [1-9]\d{4,}
abc кірмейтін сөздер \b((?!abc)\w)+\b
Бас жағында / аяғында бос символды сәйкестендіру ^\s*|\s*$
Редактордың жаңа нұсқасы
Мына жерден арнайы қазақша символдарға қатысты кейбір өзгертулер (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>

Регулярлық өрнек синтаксисы - Жиі қолданылатын регулярлық өрнек әдістері мен синтаксистері

Регулярлық өрнек - бұл күшті мәтін өңдеу құралы, бұл бетті сізге жиі қолданылатын регулярлық өрнек синтаксисінің тезистер тізімі арқылы қамтамасыз етеді, сізге регулярлық өрнектердің негізгі синтаксисі, модификаторлар, қосалқы өрнектер, тойымсыз және не тойымсыз режимдерін тез түсінуге көмектеседі.

Регулярлық өрнектің негізгі синтаксисі

Регулярлық өрнек - бұл жол үлгісінің ережелерін сипаттау, жиі кездесетін негізгі синтаксис:

Жиі қолданылатын регулярлық өрнек модификаторлары

Регулярлық өрнек модификаторлары регулярлық өрнектің сәйкестікті өзгерту үшін қолданылады, жиі кездесетін модификаторларға мыналар жатады:

Тойымсыз режим мен артқы режим

Регулярлық өрнектерде функционал режімі әдептегі тойымсыз түрінде болады, онда ол максималды сәйкестендіруге тырысады. Тойымсыз режимдер санының терісімен ' ? ' таңбасының артында болады:

Қосалқы жұптар мен бағыттар

Регулярлық өрнектегі қосалқы стандарттар ( ( ) ) шекараларымен белгіленеді, олар ұстап алу үшін қолданылады. Бағыт + | символы арқылы шығады. Мысалы:

Регулярлық өрнекті тез қарау

Осылайша, келесідей жалпы регулярлық өрнектердің тез қарау:

Функция Регулярлық өрнек
Санды сәйкестендіру \d
Санды жақсылықсыз сәйкестендіру \D
Әріпті сәйкестендіру [a-zA-Z]
Кез келген символды сәйкестендіру .
Бос символды сәйкестендіру \s

Регулярлық өрнектердің қолдану маңызды жағдайлары

Регулярлық өрнектер келесі жағдайларға кеңінен қолданылады:

Регулярлық өрнектерді оқу үшін кішкене кеңестер

Сіздер де біздің Регулярлық өрнек синтаксисінің тезистер тізімінен пайдаланыңыздар, регулярлық өрнектерді бағдарламалау барысында тиімді әрі тиімді болуды жоғарылатуға көмектеседі!

Сіздің іздеулеріңіз:
Тілді таңдаңыз