Regex Syntax Quick Reference Table

Ang regular expression, na kilala rin bilang pattern ng pahayag, ay isang pattern ng teksto na karaniwang ginagamit upang maghanap, palitan, at kontrolin ang teksto. Pangunahing binubuo ito ng mga letra mula a hanggang z at ilang espesyal na metacharacters. Ang mga application ng regular expression ay napakalawak, unang ipinakilala sa pamamagitan ng Unix, at kalaunan ay malawakang ginagamit sa Scala, PHP, C#, Java, C++, Objective-c, Perl, Swift, VBScript, Javascript, Ruby, at Python. Ang pag-aaral ng regular expressions ay talagang pag-aaral ng isang napaka-flexible na lohikal na pag-iisip, na nag-uugnay upang makamit ang kontrol sa mga string sa pamamagitan ng mga simpleng pamamaraan.
Mga Character ng Regular Paglalarawan
\ Itinatakda ang susunod na character bilang isang espesyal na character, o isang literal na character, o isang backreference, o isang octal escape. Halimbawa, “n" ay tumutukoy sa character "n". "\n" ay tumutukoy sa isang newline. Ang string "\\" ay tumutukoy sa "\" at ang "\(" ay tumutukoy sa "(".
^ Tumutukoy sa simula ng input string. Kung ang property na Multiline ng RegExp object ay naka-set, ang ^ ay tumutukoy din sa posisyon pagkatapos ng “\n" o "\r".
$ Tumutukoy sa wakas ng input string. Kung ang property na Multiline ng RegExp object ay naka-set, ang $ ay tumutukoy din sa posisyon bago ang “\n" o "\r".
* Tumutukoy sa pagkakaroon ng nakaraang subexpression zero o higit pang beses. Halimbawa, ang zo* ay maaaring tumukoy sa “z" at "zoo". Ang * ay katumbas ng {0,}.
+ Tumutukoy sa pagkakaroon ng nakaraang subexpression isang beses o higit pa. Halimbawa, “zo+" ay maaaring tumukoy sa "zo" at "zoo", ngunit hindi sa "z". Ang + ay katumbas ng {1,}.
? Tumutukoy sa pagkakaroon ng nakaraang subexpression zero o isang beses. Halimbawa, “do(es)?" ay maaaring tumukoy sa "does" o sa "do" sa "does". Ang ? ay katumbas ng {0,1}.
{n} n ay isang non-negative integer. Tumutukoy sa tiyak na n na beses. Halimbawa, “o{2}" ay hindi tumutukoy sa "o" sa "Bob", ngunit tumutukoy sa dalawang o sa "food".
{n,} n ay isang non-negative integer. Dapat ay tumutukoy ng hindi bababa sa n na beses. Halimbawa, “o{2,}" ay hindi tumutukoy sa "o" sa "Bob", ngunit maaaring tumukoy sa lahat ng o sa "foooood". "o{1,}" ay katumbas ng "o+". "o{0,}" ay katumbas ng "o*".
{n,m} m at n ay mga non-negative integers, kung saan n <= m. Dapat tumutukoy ng hindi bababa sa n na beses at hindi hihigit sa m na beses. Halimbawa, “o{1,3}" ay tumutukoy sa tatlong o sa "fooooood". "o{0,1}" ay katumbas ng "o?". Mangyaring tandaan na hindi dapat may whitespace sa pagitan ng comma at ng dalawang numero.
? Kapag ang karakter na ito ay kasunod anumang iba pang limitasyon (*, +, ?, {n}, {n,}, {n,m}), ang tugmang pattern ay hindi mapang-abuso. Ang di-mapang-abusong mode ay nagtutukoy ng pinakamaliit na pagkakatugma sa hinahanap na string, habang ang default na mapang-abusong mode ay nagtutukoy ng pinakamaraming pagkakatugma. Halimbawa, para sa string na “oooo", ang "o+?" ay tutugon sa isang "o", habang ang "o+" ay tutugon sa lahat ng "o".
. Tumutukoy sa anumang single na character, maliban sa “\n". Upang tumugma sa anumang character, kabilang ang "\n", gamitin ang pattern na katulad ng "(.|\n)".
(pattern) Tumutukoy sa pattern at nakuha ang tugmang ito. Ang nakuhang tugma ay maaaring makuha mula sa nabuo na集合 ng Matches, gamit ang SubMatches集合 sa VBScript, habang sa JScript ay gumagamit ng $0...$9 na property. Upang tumugma sa mga character ng tawing, gamitin ang “\(" o "\)".
(?:pattern) Tumutukoy sa pattern ngunit hindi nakakakuha ng tugmang resulta, ibig sabihin, ito ay isang hindi-nakuhang tugma, na hindi naayos para sa hinaharap na gamit. Ito ay kapaki-pakinabang kapag gumagamit ng separator character na “(|)" upang pagsamahin ang bawat bahagi ng isang pattern. Halimbawa, "industr(?:y|ies)" ay isang mas maikling ekspresyon kaysa sa "industry|industries".
(?=pattern) Positive Lookahead, tumutukoy sa simula ng string na tumutugma sa pattern. Ito ay isang hindi-nakuhang tugma, ibig sabihin, ang tugma ay hindi kailangang makuha para sa hinaharap na gamit. Halimbawa, “Windows(?=95|98|NT|2000)" ay tumutukoy sa "Windows" sa "Windows2000", ngunit hindi sa "Windows3.1". Ang lookahead ay hindi kumukuha ng karakter, ibig sabihin, pagkatapos ng isang tugma, ang susunod na paghahanap para sa susunod na tugma ay magsisimula agad pagkatapos ng huling tugma, hindi mula sa mga karakter na naglalaman ng lookahead.
(?!pattern) Negative Lookahead, tumutukoy sa simula ng string na hindi tumutugma sa pattern. Ito ay isang hindi-nakuhang tugma, ibig sabihin, ang tugma ay hindi kailangang makuha para sa hinaharap na gamit. Halimbawa, “Windows(?!95|98|NT|2000)" ay tumutukoy sa "Windows3.1" sa "Windows", ngunit hindi sa "Windows2000" sa "Windows". Ang lookahead ay hindi kumukuha ng karakter, ibig sabihin, pagkatapos ng isang tugma, ang susunod na paghahanap para sa susunod na tugma ay magsisimula agad pagkatapos ng huling tugma, hindi mula sa mga karakter na naglalaman ng lookahead.
(?<=pattern) Positive Lookbehind, katulad ng positive lookahead, ngunit ang direksyon ay kabaligtaran. Halimbawa, “(?<=95|98|NT|2000)Windows" ay tumutukoy sa "Windows" sa "2000Windows", ngunit hindi sa "3.1Windows".
(?<!pattern) Negative Lookbehind, katulad ng negative lookahead, ngunit ang direksyon ay kabaligtaran. Halimbawa, “(?<!95|98|NT|2000)Windows" ay tumutukoy sa "3.1Windows" sa "Windows", ngunit hindi sa "2000Windows" sa "Windows".
x|y Tumutukoy sa o x o y. Halimbawa, “z|food" ay maaaring tumukoy sa "z" o "food". Ang "(z|f)ood" ay tumutukoy sa "zood" o "food".
[xyz] Character set. Tumutukoy sa anumang character na kasama. Halimbawa, “[abc]" ay maaaring tumukoy sa "plain" sa "a".
[^xyz] Negative character set. Tumutukoy sa anumang character na hindi kasama. Halimbawa, “[^abc]" ay maaaring tumukoy sa "plain" sa "p".
[a-z] Character range. Tumutukoy sa anumang character sa tinukoy na hanay. Halimbawa, “[a-z]" ay maaaring tumukoy sa anumang lowercase letter character mula "a" hanggang "z".
[^a-z] Negative character range. Tumutukoy sa anumang character na hindi nasa tinukoy na hanay. Halimbawa, “[^a-z]" ay maaaring tumukoy sa anumang character na wala sa hanay na "a" hanggang "z".
\b Tumutukoy sa isang hangganan ng salita, na nagsasaad ng posisyon sa pagitan ng salita at puwang. Halimbawa, “er\b" ay maaaring tumukoy sa "er" sa "never", ngunit hindi sa "er" sa "verb".
\B Tumutukoy sa non-word boundary. Ang “er\B" ay maaaring tumukoy sa "er" sa "verb", ngunit hindi sa "er" sa "never".
\cx Tumutukoy sa control character na tinukoy ng x. Halimbawa, ang \cM ay tumutukoy sa isang Control-M o carriage return. Ang halaga ng x ay dapat isa sa A-Z o a-z. Kung hindi, ang c ay itinuturing na isang literal na “c" na character.
\d Tumutukoy sa isang numeric character. Katumbas ng [0-9].
\D Tumutukoy sa isang non-numeric character. Katumbas ng [^0-9].
\f Tumutukoy sa isang form feed. Katumbas ng \x0c at \cL.
\n Tumutukoy sa isang newline. Katumbas ng \x0a at \cJ.
\r Tumutukoy sa isang carriage return. Katumbas ng \x0d at \cM.
\s Tumutukoy sa anumang whitespace character, kabilang ang space, tab, form feed, at iba pa. Katumbas ng [ \f\n\r\t\v].
\S Tumutukoy sa anumang non-whitespace character. Katumbas ng [^ \f\n\r\t\v].
\t Tumutukoy sa isang tab. Katumbas ng \x09 at \cI.
\v Tumutukoy sa isang vertical tab. Katumbas ng \x0b at \cK.
\w Tumutukoy sa anumang word character, kasama ang underscore. Katumbas ng “[A-Za-z0-9_]".
\W Tumutukoy sa anumang non-word character. Katumbas ng “[^A-Za-z0-9_]".
\xn Tumutukoy sa n, kung saan ang n ay isang hexadecimal escape value. Ang hexadecimal escape value ay dapat tiyak na mayroong dalawang digit na haba. Halimbawa, “\x41" ay tumutukoy sa "A". Ang "\x041" ay katumbas ng "\x04&1". Maaaring gamitin ang ASCII encoding sa regular expressions.
\num Tumutukoy sa num, kung saan ang num ay isang positive integer. Para sa pagsusunod na reference ng mga nakuhang tugma. Halimbawa, “(.)\1" ay tumutukoy sa dalawang magkakasunod na katulad na character.
\n Itinatampok ang isang octal escape value o isang backreference. Kung ang \n ay mayroong hindi bababa sa n na nakuhang subexpression, ang n ay isang backreference. Kung hindi, kung ang n ay isang octal digit (0-7), ang n ay isang octal escape value.
\nm Itinatampok ang isang octal escape value o isang backreference. Kung ang \nm ay may nakuhang subexpressions na hindi bababa sa nm, at kung ang nm ay may n na nakuhang subexpression, ang n ay ginagamit bilang backreference na sinusundan ng literal na m. Kung wala sa mga kondisyon ang nakumikit, at kung ang n at m ay octal digits (0-7), ang \nm ay tumutukoy sa octal escape value nm.
\nml Kung ang n ay isang octal digit (0-3), at ang m at l ay parehong octal digits (0-7), ang tugma ay isang octal escape value nml.
\un Tumutukoy sa n, kung saan ang n ay isang Unicode character na kinakatawan ng apat na hexadecimal digit. Halimbawa, \u00A9 ay tumutukoy sa copyright symbol (©).
Karamihan sa mga Gamit na Regular Expression
Pangalan ng Gumagamit /^[a-z0-9_-]{3,16}$/
Password /^[a-z0-9_-]{6,18}$/
Password 2 (?=^.{8,}$)(?=.*\d)(?=.*\W+)(?=.*[A-Z])(?=.*[a-z])(?!.*\n).*$ (na binubuo ng mga numero/uppercase letters/lowercase letters/special characters, lahat ay dapat naroroon, higit sa 8 na characters)
Hexadecimal Value /^#?([a-f0-9]{6}|[a-f0-9]{3})$/
Email Address /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/ o \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/ o [a-zA-z]+://[^\s]*
IP Address /((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]?)$/ o ((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+\/>)$/ o <(.*)(.*)>.*<\/\1>|<(.*) \/>
Alisin ang Code\\ mga Komento (?<!http:|\S)//.*$
Tumugma sa mga Double Byte Characters (kabilang ang Han Characters) [^\x00-\xff]
Han Characters [\u4e00-\u9fa5]
Han Character Range sa Unicode Encoding /^[\u2E80-\u9FFF]+$/
Chinese Characters at Full-width Punctuation [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee]
Petsa (Year-Month-Day) (\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
Petsa (Month/Day/Year) ((0?[1-9]{1})|(1[1|2]))/(0?[1-9]|([12][1-9])|(3[0|1]))/(\d{4}|\d{2})
Oras (Hour:Minute, 24-hour format) ((1|0?)[0-9]|2[0-3]):([0-5][0-9])
Fixed Line Telephone sa Mainland China (\d{4}-|\d{3}-)?(\d{8}|\d{7})
Mobile Number sa Mainland China 1\d{10}
Postal Code sa Mainland China [1-9]\d{5}
ID Number sa Mainland China (15 o 18 digits) \d{15}(\d\d[0-9xX])?
Non-negative Integer (positive integer or zero) \d+
Positive Integer [0-9]*[1-9][0-9]*
Negative Integer -[0-9]*[1-9][0-9]*
Integer -?\d+
Decimal (-?\d+)(\.\d+)?
Empty Line \n\s*\r o \n\n(editplus) o ^[\s\S ]*\n
QQ Number [1-9]\d{4,}
Words that do not contain abc \b((?!abc)\w)+\b
Match leading and trailing whitespace characters ^\s*|\s*$
Common Edit
Ang sumusunod ay ilang mga kapalit para sa mga espesyal na Chinese (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>

Mabilis na Pagsusuri ng Syntax ng Regular Expressions - Mga Karaniwang Teknik at Syntax ng Regular Expressions

Ang regular expressions ay isang makapangyarihang kasangkapan para sa pagproseso ng teksto, ang pahinang ito ay nagbibigay sa iyo ng Mabilis na Pagsusuri ng Syntax ng Regular Expressions upang matulungan kang mabilis na maunawaan ang pangunahing syntax, mga modifiers, subexpressions, greedy mode at non-greedy mode ng regular expressions.

Pangunahing Syntax ng Regular Expressions

Ang regular expressions ay ginagamit upang ilarawan ang mga patakaran para sa pattern ng string, ang mga karaniwang pangunahing syntax ay kinabibilangan ng:

Mga Karaniwang Modifier ng Regular Expressions

Ang mga modifier ng regular expressions ay ginagamit upang baguhin ang mga patakaran ng tugma sa regular expressions, ang mga karaniwang modifier ay kinabibilangan ng:

Greedy Mode at Non-Greedy Mode

Sa regular expressions, ang mga quantifiers ay default na greedy, kung saan sisikaping mapanatili ang higit pang mga karakter. Ang non-greedy mode ay ginagamit sa pamamagitan ng pagdaragdag ng ? pagkatapos ng quantifier, ang mga halimbawa ay ibinibigay sa ibaba:

Subexpressions at Grouping

Ang mga subexpression sa regular expressions ay tinutukoy gamit ang parentheses (()), karaniwang ginagamit upang kunin ang bahagi ng matching. Ang grouping ay naisasagawa gamit ang "|" character. Halimbawa:

Mabilis na Pagsusuri ng Regular Expressions

Ang mga sumusunod ay mabilis na pagsusuri ng mga karaniwang regular expressions:

Function Regular Expression
Tumutukoy sa mga numero \d
Tumutukoy sa mga hindi numero \D
Tumutukoy sa mga letra [a-zA-Z]
Tumutukoy sa anumang character .
Tumutukoy sa mga whitespace characters \s

Application ng Regular Expressions

Ang regular expressions ay malawak na ginagamit sa mga sumusunod na application:

Mga Tip sa Pag-aaral ng Regular Expressions

Gamitin agad ang aming Mabilis na Pagsusuri ng Syntax ng Regular Expressions upang mas maging epektibo sa pagsusulat ng regular expressions at pagpahusay ng kakayahan sa pagproseso ng teksto!

Ang iyong mga yapak:
Pumili ng Wika