StringRegExp

首页  后退  前进

StringRegExp

down2

StringRegExp

¼ì²é×Ö´®ÊÇ·ñÆ¥ÅäÖ¸¶¨µÄÕýÔò±í´ïʽ.

 

StringRegExp ( "test", "pattern" [, flag = 0 [, offset = 1]] )

²ÎÊý

test

Òª¼ì²éµÄÖ÷Ìâ×Ö·û´®

pattern

ҪƥÅäµÄÕýÔò±í´ïʽ.

flag

[¿ÉÑ¡] ±íʾº¯ÊýÔËÐз½Ê½µÄÖµ. ¼ûϱí˵Ã÷. ĬÈÏ 0.

offset

[¿ÉÑ¡] ¿ªÊ¼Æ¥ÅäµÄ×Ö·û´®Î»Öà (ÆðʼÓÚ1). ĬÈÏΪ 1.

flag

Öµ

$STR_REGEXPMATCH (0)

·µ»Ø 1 (Æ¥Åä) »ò 0 (²»Æ¥Åä). (ĬÈÏ)

$STR_REGEXPARRAYMATCH (1)

·µ»ØÆ¥ÅäµÄÊý×é

$STR_REGEXPARRAYFULLMATCH (2)

·µ»ØÍêÕûÆ¥ÅäµÄÊý×é (Perl / PHP ½á¹¹)

$STR_REGEXPARRAYGLOBALMATCH (3)

·µ»ØÈ«¾ÖÆ¥ÅäµÄÊý×é

$STR_REGEXPARRAYGLOBALFULLMATCH (4)

·µ»ØÍêÕûÆ¥Åä(Perl/ PHP ½á¹¹)µÄÈ«¾ÖÆ¥ÅäÊý×é

³£Á¿¶¨ÒåÔÚ StringConstants.au3.

 

·µ»ØÖµ

±êÖ¾ = $STR_REGEXPMATCH (0) :

@error:

ÒâÒå

2:

ÕýÔò±í´ïʽ´íÎó. @Extended = ÕýÔò±í´ïʽÖеĴíÎóÆ«ÒÆÁ¿

 

 

 

±êÖ¾  = $STR_REGEXPARRAYMATCH (1) »ò $STR_REGEXPARRAYFULLMATCH (2) :

 

@error:

ÒâÒå

0:

ÓÐЧÊý×é. ΪÏÂÒ»¸öÆ«ÒÆÁ¿¼ì²é @Extended

1:

Êý×éÎÞЧ. ûÓÐÆ¥ÅäÏîÄ¿

2:

ÕýÔò±í´ïʽ´íÎó, Êý×éÎÞЧ. @Extended = ÕýÔò±í´ïʽµÄÆ«ÒÆÁ¿´íÎó

 

 

 

±êÖ¾ = $STR_REGEXPARRAYGLOBALMATCH (3) »ò $STR_REGEXPARRAYGLOBALFULLMATCH (4) :

 

@error:

ÒâÒå

0:

ÓÐЧÊý×é

1:

Êý×éÎÞЧ. ûÓÐÆ¥ÅäÏîÄ¿

2:

ÕýÔò±í´ïʽ´íÎó, Êý×éÎÞЧ. @Extended = ÕýÔò±í´ïʽµÄÆ«ÒÆÁ¿´íÎó

±¸×¢

±êÖ¾²ÎÊý¿ÉÒÔÓÐ5¸öÖµ ($STR_REGEXPMATCH (0) µ½ $STR_REGEXPARRAYGLOBALFULLMATCH (4)).

test

·µ»Ø 1 (true) ·¢ÏÖÆ¥Åä; »ò 0 (false) ûÓÐÆ¥Åä

$STR_REGEXPARRAYMATCH (1)

$STR_REGEXPARRAYFULLMATCH (2)

ÕÒµ½µÚÒ»¸öÆ¥Å䣬·µ»ØµÄ²¶»ñ×éÔÚÒ»¸öÊý×éÖÐ; µ±Ä£Ê½Ã»Óⶻñ×é, ·µ»ØµÄµÚÒ»¸öÆ¥ÅäÔÚÊý×éÖÐ

$STR_REGEXPARRAYGLOBALMATCH (3)

$STR_REGEXPARRAYGLOBALFULLMATCH (4)

ʹÓÃÆ¥ÅäµÄËùÓÐʵÀýÌî³äÊý×é

 

$STR_REGEXPARRAYFULLMATCH (2) Óë $STR_REGEXPARRAYGLOBALFULLMATCH (4) °üÀ¨ÍêÕûÆ¥ÅäµÄÎı¾×÷Ϊ·µ»ØÊý×éµÄµÚÒ»¸öÔªËØ, $STR_REGEXPARRAYMATCH (1) Óë $STR_REGEXPARRAYGLOBALMATCH (3) ²»Ö»ÊDz¶»ñµÄ×é.

 

ÕýÔò±í´ïʽ±íʾ·¨ÒÔ½ô´Õ·½Ê½ËÑË÷Ö¸¶¨Ö÷Ìâ×Ö·û´®£¬È·¶¨¿ÉÒÔÓÉ StringRegExp() ÌáÈ¡µÄÆ¥Å䲿·Ö,

»ò¿ÉÒÔÓÉ StringRegExpReplace() Ìæ»»µÄÆ¥Å䲿·Ö.

 

¸üÈ·ÇеÄ˵, ÕýÔò±í´ïʽÒýÇ潫³¢ÊÔ´Ó×óµ½ÓÒÆ¥ÅäÖ÷Ìâ×Ö·û´®µÄ¸ñʽ(Ò»ÖÖ±à³Ì¸ñʽ). Èç¹û·¢Éú²»Æ¥Åä, ÒýÇ潫³¢ÊÔ»ØËݵ½ÐèÒªµÄλÖÃ(ÒÔ´Ë·µ»Ø֮ǰµÄ״̬), ÒÔÇóÆ¥ÅäģʽµÄÆäÓಿ·Ö.

 

»ØËÝÊÇÕýÔò±í´ïʽÒýÇæµÄ»ù±¾ÌØÕ÷Ö®Ò», ÿ¸ö³õѧÕß³ÌÐòÔ±¶¼ÖªµÀ²¢¾­³£Ê¹ÓÃ. Õâ¾ÍÏñÔÚÀ뿪ÿ¸ö·¿Úʱ×öÉϱê¼Ç, ²¢ÔÚÓöµ½ËÀºúͬʱ»Øµ½×î½üÒ»¸ö»¹Ã»×ß¹ýµÄ·¿Ú: ÔÚÄãÕÒµ½ÕýÈ·µÄµã(Æ¥Åä³É¹¦)»ò̽Ë÷¹ýËùÓз¾¶¶¼Ã»ÓÐÄãµÄÄ¿±ê(Æ¥Åäʧ°Ü)֮ǰ, Ä㶼ÐèҪʹÓûØËÝ. Õâ¸ùÔÚĿ¼Ê÷ÖÐËÑË÷Ö¸¶¨µÄÎļþÃûûʲô²»Í¬.

 

AutoIt ʹÓà PCRE ÒýÇæ. PCRE ±íʾ "Perl¼æÈݵÄÕýÔò±í´ïʽ", ÕâÊÇ×îÈ«ÃæµÄ¿ªÔ´ÒýÇæ. °üº¬ÁË Unicode Àà±ðÊôÐÔ(UCP)Ö§³Ö,  ËüÔÊÐí´ó¶àÊýÈËÀàÓïÑÔµÄϸ½Ú´¦Àí.

È»¶ø, ΪÁ˱£³ÖÓë֮ǰ°æ±¾µÄ¼æÈÝÐÔ²¢±£³Ö×î¼ÑµÄÆ¥ÅäËÙ¶È, ÔÚĬÈÏÇé¿öÏÂûÓÐÆôÓà UCP. Äã¿ÉÒÔÔÚ±í´ïʽ×îÇ°ÃæÌí¼Ó×Ö·û´® (*UCP) À´ÆôÓÃËü. ÆôÓÃʱ, UCP ÉèÖý«¸ü¸ÄÕýÔò±í´ïʽµÄÔªËØÊýÄ¿À©Õ¹, ÈçÏÂÎÄËùÊöµÄÊÊÓÃÇé¿ö.

 

´ËÒ³Ö»ÊÇÕªÒª±í´ïʽ×î³£ÓõÄģʽԪËØ. ¹ØÓÚ AutoIt ʵʩÕýÔò±í´ïʽµÄÈ«ÃæÉîÈëµØÌÖÂÛ, Çë²ÎÔÄ PCRE ģʽµÄÍêÕûÃèÊö.

³ý·ÇÄúÒÑÊìϤÕýÔò±í´ïʽ, ·ñÔòÄã¿ÉÄÜÐèÒª²»Ö¹Ò»´ÎÔĶÁ±¾ÕªÒªµÄ¼¸¸ö²¿·Ö, ÒÔÕÆÎÕËüÃÇÈçºÎ¹¤×÷¼°ÆäÖ®¼äµÄÏ໥¹Øϵ.

 

×¢Òâ: ´íÎóµÄÕýÔò±í´ïʽ¿ÉÒÔ²úÉúÒ»¸öÎÞÏÞÑ­»·¶øÕ¼Óà CPU, ÉõÖÁ¿ÉÒÔµ¼Ö±ÀÀ£.

 

È«¾ÖÉèÖÃ

 

ÕâЩÉèÖýöÔÚģʽµÄ¿ªÊ¼±»Ê¶±ð²¢Ó°ÏìÈ«¾Ö·¶Î§.

 

»»ÐзûÔ¼¶¨

 

»»ÐзûÐòÁÐÓ°Ïì ^ ºÍ $ µÄ¶¨Î»Æ¥Åä, ²¢È·¶¨ \N ºÍ . ÊÇ·ñÆ¥Åä.

ĬÈÏÇé¿öÏ»»ÐзûÐòÁÐÊÇ @CRLF×éºÏ»ò @CR »ò @LF.

ĬÈÏÖµ¿ÉÒÔͨ¹ýÔÚ±í´ïʽµÄ¿ªÊ¼Ìí¼ÓÏÂÁвÙ×÷À´¸ü¸Ä.

(*CR)

»Ø³µ·û (@CR)

(*LF)

»»Ðзû (@LF)

(*CRLF)

»Ø³µ·ûºó½ô½Ó»»Ðзû (@CRLF)

(*ANYCRLF)

ÈκΠ@CRLF, @CR »ò @LF. ÕâÊÇĬÈϵĻ»ÐÐÔ¼¶¨

(*ANY)

ÈκΠUnicode »»ÐзûÐòÁÐ: @CRLF, @LF, VT, FF, @CR »ò \x85

 

\R Æ¥Åä

(*BSR_ANYCRLF)

ĬÈÏ \R ½öÆ¥Åä @CRLF, @CR »ò @LF

(*BSR_UNICODE)

±äÐ뵀 \R Æ¥ÅäÈκΠUnicode »»ÐзûÐòÁÐ: @CRLF, @LF, VT, FF, @CR »ò \x85

 

PCRE ģʽ¿ÉÒÔ°üº¬Ñ¡Ïî, ÕâЩѡÏî°üº¬ÔÚ (? ) ÐòÁÐÖÐ. Ñ¡Ïî¿ÉÒÔ×éºÏÔÚÒ»Æð: "(?imx)". Ñ¡Ïîºó¸úËæÒ»¸öÁ¬×Ö·û±íʾ·ñ¶¨: "(?im-sx)".

Ñ¡Ïî³öÏÖÔÚ×éÍ⽫ӰÏìÊ£Óàģʽ. Ñ¡ÏîÔÚ×éÄÚÔò½öÓ°Ïì±¾×é. Ñ¡ÏîÔÚ×Ö·ûÀàÄÚ²¿½«Ê§È¥ÆäÌØÊ⺬Òå, ½ö´ú±íËüÃDZ¾Éí.

(?i)

Caseless: ´Ó¸Ãµã¿ªÊ¼Æ¥Åä²»Çø·Ö´óСд. ĬÈÏÆ¥ÅäÊÇÇø·Ö´óСдµÄ. µ±ÆôÓà UCP ÔòÊÊÓÃÓÚÕû¸ö Unicode ƽÃæ 0£¬Ä¬ÈϽöÊÊÓÃÓÚ ASCII ×Öĸ A-Z Óë a-z.

(?m)

¶àÐÐ: ^ Óë $ Æ¥ÅäÊý¾ÝÄڵĻ»Ðзû. ĬÈ϶àÐÐÊǹرյÄ.

(?s)

µ¥ÐÐ »ò DotAll: . Æ¥ÅäÈκÎ×Ö·û, °üÀ¨Ò»¸ö»»ÐзûÐòÁÐ. ĬÈÏ DotAll ÊǹرյÄ, Òò´Ë . ²»Æ¥Åä»»ÐзûÐòÁÐ.

(?U)

Ungreedy: ´Ó¸Ãµã¿ªÊ¼ÏÞ¶¨·û±äµÃÀÁ¶è(·ÇÌ°À·). ĬÈÏΪ̰À·Æ¥Åä - ¼ûÏÂÎĵĽøÒ»²½½âÊÍ.

(?x)

eXtended: ×Ö·ûÀàÖ®ÍâµÄ¿Õ¸ñ½«±»ºöÂÔ, # Æô¶¯Ä£Ê½µ½ÏÂÒ»¸öʵÌå»»ÐзûµÄ×¢ÊÍ. ×é¼þÖ®¼äµÄÎÞÒâÒå¿Õ°×ʹÕýÔò±í´ïʽÓиüºÃµÄ¿É¶ÁÐÔ. ĬÈÏ¿Õ¸ñÆ¥Åä×Ô¼º²¢ÇÒ # ÊÇÔ­Òå×Ö·û.

 

×Ö·û

 

ÕýÔò±í´ïʽģʽÓÉÐèÆ¥ÅäµÄ×ÖÃæ Unicode Îı¾²¿·Ö, ÓëÕýÔò±í´ïʽ˵Ã÷·û»òÑ¡Ïî»ìºÏ×é³É. ˵Ã÷·ûºÍÑ¡ÏîʹÓÃһЩÌØÊ⺬ÒåµÄ Ôª×Ö·û. »òÒýÓÃϱíÃèÊöµÄÌØÊâģʽԪ¼þ.

×ÖÃæÎı¾²¿·Ö, Îı¾×ÜÊÇ´ú±íËüÃÇ×ÔÉí: ģʽ "literal part with ÖйúÎÄ×Ö" ½«ÍêÈ«Æ¥Åä×Ö·û´® "literal part with ÖйúÎÄ×Ö".

һЩ·Ç×ÖĸÊý×Ö×Ö·û³ÆΪ Ôª×Ö·û, ¾ßÓÐÌØÊâµÄÐÐΪ, ½«ÔÚºóÃæÌÖÂÛ.

 

±íʾ×ÖÃæÉÏijЩ×Ö·ûµÄÌØÊâ×Ö·û

 

ÏÂÃæµÄÌØÊâ×Ö·û±»ÓÃÀ´±íʾ×ÖÃæÉÏijЩ×Ö·û.

\a

´ú±í "¾¯ÖÓ", ¼´ BEL ×Ö·û (Chr(7))

\cX

´ú±í "control-X", ÆäÖÐ X ÊÇÈκΠ7 λ ASCII ×Ö·û. ÀýÈç, "\cM" ±íʾ ctrl-M, Óë \x0D »ò \r (Chr(13)) Ïàͬ

\e

´ú±í "escape" ¿ØÖÆ×Ö·û (Chr(27)). ²»ÄÜÓëתÒå×Ö·û»ìΪһ̸

\f

´ú±í "»»Ò³·û" (Chr(12))

\n

´ú±í "»»Ðзû" (@LF, Chr(10))

\r

´ú±í "»Ø³µ·û" (@CR, Chr(13))

\t

´ú±í "ˮƽÖƱí·û" (@TAB, Chr(9))

\ddd

±íʾ°Ë½øÖÆ´úÂë×Ö·û ddd, »ò·´ÏòÒýÓò¶»ñ×éµÄÊ®½øÖÆÊý ddd. ÀýÈç, ([a-z])\1 ½«Æ¥Åä 2 ±¶×Öĸ.

×îºÃ±ÜÃâʹÓà ÒòΪËü¿ÉÄÜÊDz»Ã÷È·µÄ! ÓÐÀûÓÚÏÂÃæµÄÊ®Áù½øÖƱíʾ

\xhh

´ú±íÊ®Áù½øÖÆµÄ Unicode ±àÂë×Ö·û hh: "\x7E" ´ú±íÒ»¸ö²¨À˺Š"~"

\x{hhhh}

´ú±íÊ®Áù½øÖÆµÄ Unicode ±àÂë×Ö·û hhhh: "\x{20AC}" ±íʾŷԪ·ûºÅ, "€" (ChrW(0x20AC))

\x

ÆäÖÐ x Ϊ·Ç×ÖĸÊý×Ö, ´ú±í×ÖÃæÔ­Òâ x. ´Ó×ÖÃæÉÏÓÃÀ´±íʾԪ×Ö·û: "\.\[" ±íʾһ¸öÔ²µãºó¸úËæÒ»¸ö×ó·½À¨ºÅ, ".["

\Q ... \E

Öð×Ö˳Ðò: Ôª×Ö·ûÔÚ \Q Óë \E Ö®¼äʧȥÌØÊ⺬Òå: "\Q(.)\E" Æ¥Åä "(.)" ²¢ÇÒµÈЧ, µ«¶ÁµÃ¸ü¶à, "\(\.\)"

 

Ôª×Ö·û

 

PCRE Ôª×Ö·û \ . ^ $ | [ ( { * + ? # ¾ßÓÐÒ»»ò¶à¸öÌØÊâµÄº¬Òå, È¡¾öÓÚ¾ßÌåµÄ»·¾³.

Òª²åÈë×ÖÃæÔ­ÒâµÄÔª×Ö·û, ÔÚÇ°Ãæ¼ÓÉÏÒ»¸ö·´Ð±¸Ü (Õâ¾ÍËùν תÒå(»òÒýÓÃ) ×Ö·û): "\$" ±íʾÃÀÔª×Ö·û.

½«ÔÚµ¥¶À½Ú¶ÎÌÖÂÛÔª×Ö·ûµÄÐÐΪ»òº¬Òå.

 

×Ö·ûÀàÐÍ

.

Æ¥ÅäÈκε¥¸ö×Ö·û, ĬÈϳýÁË»»ÐзûÐòÁÐ. µ±Ñ¡Ïî (?s) ¼¤»îʱƥÅä»»Ðзû

\d

Æ¥ÅäÈκÎÊ®½øÖÆÊý×Ö (ÔÚÆôÓà UCP µÄÈκÎÓïÑÔµÄÈκΠUnicode Ê®½øÖÆ)

\D

Æ¥ÅäÈκηÇÊý×Ö

\h

Æ¥ÅäÈκÎˮƽ¿Õ°××Ö·û(¼ûϱí)

\H

Æ¥ÅäÈκβ»ÊÇˮƽ¿Õ°×·ûµÄ×Ö·û

\N

Æ¥Åä³ý»»ÐзûÐòÁÐÖ®ÍâµÄÈκÎ×Ö·û, ²¢ºöÂÔÑ¡Ïî (?s)

\p{ppp}

½öµ± UCP ÆôÓÃʱ: Æ¥ÅäÈκΠUnicode ÊôÐÔµÄ×Ö·û ppp. ÀýÈç "\b\p{Cyrillic}+" Æ¥ÅäÈκÎÎ÷Àï¶ûÓïµ¥´Ê; "\p{Sc}" Æ¥ÅäÈκλõ±Ò·ûºÅ. Çë²é¿´²Î¿¼ÎĵµÏ¸½Ú

\P{ppp}

½öµ± UCP ÆôÓÃʱ: Æ¥Åä²»¾ßÓÐÊôÐÔµÄÈκΠUnicode ×Ö·û ppp

\R

ĬÈÏÆ¥ÅäÈκΠUnicode »»ÐзûÐòÁÐ, »òµ±Ç°´¦Óڻ״̬µÄ (*BSR_...) ÉèÖÃ. ĬÈÏ \R Æ¥Åä "(?>\r\n|\n|\r)" ÆäÖÐ "(?>...)" ÊÇÒ»¸öÔ­×Ó×é, ʹ "\r\n" (@CRLF) ÐòÁв»Ò×ÆÆ»µ

\s

Æ¥ÅäÈκοհ××Ö·û (¼ûϱí)

\S

Æ¥ÅäÈκηǿհ××Ö·û

\v

Æ¥ÅäÈκδ¹Ö±¿Õ°××Ö·û (¼ûϱí)

\V

Æ¥Åä²»ÊÇ´¹Ö±¿Õ°××Ö·ûµÄÈκÎ×Ö·û

\w

Æ¥ÅäÈκΠ"µ¥´Ê" ×Ö·û: ÈκÎÊý×Ö, ÈκÎ×Öĸ»òÏ»®Ïß "_" (»òµ± UCP ÆôÓÃʱµÄÈκΠUnicode Êý×Ö, ÈκÎÓïÑÔÖеÄÈκΠUnicode ×Öĸ, Ï»®Ïß "_")

\W

Æ¥ÅäÈκηǵ¥´Ê×Ö·û

\X

½öµ± UCP ÆôÓÃʱ: Æ¥ÅäÈκΠUnicode À©Õ¹µÄ×ÖĸȺ¼¯, ÕâÊÇÒ»¸ö²»Ò×ÆÆ»µµÄµÄ´úÂëµãÐòÁÐ, ±íʾÓû§µÄÒ»¸öµ¥¶À×Ö·û. Æä½á¹ûÊÇ \X ¿ÉÄÜÔÚÖ÷Ìâ×Ö·û´®ÖÐÆ¥Åä¶à¸ö×Ö·û, Óë´Ë±íÖÐËùÓÐÆäËüÐòÁÐÏà·´

 

\h Æ¥Åäˮƽ¿Õ°××Ö·û

 

\h ĬÈÏÏ൱ÓÚ "[\x09 \xA0]" (»òµ± UCP ÆôÓÃʱÏ൱ÓÚ "[\x09 \xA0\x{1680}\x{180E}\x{2000}-\x{200A}\x{202F}\x{205F}\x{3000}]".)

Õâ¸öÆ¥Åä: ˮƽÖƱí·û (HT), ¿Õ°×, ·Ç»»Ðпոñ (µ± UCP ÆôÓÃʱÔö¼Ó: Å·¸ÊÎÄ×Ö¿Õ¼ä±ê¼Ç, ÃɹÅÎÄÔªÒô·Ö¸ô·û, En quad, Em quad, En space, Em space, Three-per-em space, Four-per-em space, Six-per-em space, Figure space, ±êµã·ûºÅ¿Õ¼ä, Thin space, Hair space, Õ­ÎÞÖжϿոñ, ÖеÈÊýѧ¿Õ¼ä, ±íÒâ×Ö·û¿Õ¼ä.)

 

\v Æ¥Åä´¹Ö±¿Õ°××Ö·û

 

\v ĬÈÏÇé¿öϵȼÛÓÚ "[\x0A-\x0D]" (»ò UCP ÆôÓõȼÛÓÚ"[\x0A-\x0D\x{0085}\x{2028}\x{2029}]")

Õâ¸öÆ¥Åä: »»Ðзû (LF), ´¹Ö±ÖƱí·û (VT), »»Ò³·û (FF), »Ø³µ·û (CR) (µ± UCP ÆôÓÃʱÔö¼Ó: ÏÂÒ»ÐÐ (NEL), Ðзָô·û, ¶ÎÂä·Ö¸ô·û.)

 

\s Æ¥Åä´¹Ö±¿Õ°××Ö·û

 

\s µÈ¼ÛÓÚ "[\h\x0A\x0C\x0D]".

Õâ¸öÆ¥Åä: Æ¥Åä \h ÄÚµÄËùÓÐ×Ö·û¼Ó»»Ðзû(LF), »»Ò³·û(FF), »Ø³µ·û(CR).

 

Æ¥Åä [[:space:]] ¿Õ°××Ö·û

 

[[:space:]] Ï൱ÓÚ "\s".

Õâ¸öÆ¥Åä: \s ÄÚµÄËùÓÐ×Ö·û¼ÓÉÏ´¹Ö±ÖƱí (VT).

Character classes and POSIX classes

 

×Ö·ûÀà

 

×Ö·ûÀඨÒåÒ»×éÔÊÐíµÄ(»ò²»ÔÊÐíµÄ)×Ö·û, Ï£ÍûÆ¥Åä(»ò²»Æ¥Åä)Ö÷Ìâ×Ö·û´®µÄÏÂÒ»¸ö×Ö·û.

ÔÚ×Ö·ûÀà, ´ó¶àÊýÔª×Ö·ûʧȥÒâÒå (ÀýÈç $ . or *) »ò±íʾÆäËü¶«Î÷ (ÀýÈç ^).

[ ... ]

Æ¥ÅäÃ÷È·ÉèÖõÄÈκÎ×Ö·û: "[aeiou]" Æ¥ÅäÈκÎСдԪÒô×Öĸ. ÔÚ¿ªÊ¼ºÍ½áÊø×Ö·ûÖ®¼äÌí¼ÓÒ»¸öÁ¬×Ö·û¿ÉÒÔ¶¨ÒåÒ»×éÁ¬Ðø(µÝÔöµÄ Unicode Âë˳Ðò)¼¯ºÏ: "[a-z]" Æ¥ÅäÈÎÒâСд ASCII ×Öĸ. ÒªÔÚÒ»×éÖаüÀ¨Á¬×Ö·û (-), ½«Ëü×÷Ϊһ×éµÄµÚÒ»¸ö»ò×îºóÒ»¸ö×Ö·û»òתÒåÁ¬×Ö·û: \-.

×¢Òâģʽ "[A-z]" Óëģʽ "[A-Za-z]" ÊDz»Ò»ÑùµÄ: Ç°ÕßÏ൱ÓÚ "[A-Z\[\\\]^_`a-z]".

ÈôÒªÔÚÒ»×éÖаüÀ¨Ò»¸öÓÒÀ¨ºÅ, ½«ËüÉèÖÃΪ¼¯ºÏµÄµÚÒ»¸ö×Ö·û»òתÒåËü: "[][]" Óë "[\[\]]" ½«Æ¥Åä "[" »ò "]".

×¢Òâ×Ö·ûÀàÖУ¬Ö»ÓÐ \d, \D, \h, \H, \p{}, \P{}, \s, \Q...\E, \S, \v, \V, \w, \W, and \x ÐòÁб£ÁôÆäÌØÊâµÄº¬Òå, ¶ø \b ±íʾÍ˸ñ·û (Chr(8)).

[^ ... ]

Æ¥ÅäÈκΠ²» ÔÚÉèÖÃÖеÄ×Ö·û: "[^0-9]" Æ¥ÅäÈκηÇÊý×Ö. ÒªÔÚÒ»×éÖаüÀ¨Ò»¸öÍÑ×Ö·ûºÅ (^), °ÑËü·ÅÔÚ×éµÄ¿ªÊ¼ºóÃæ, »òתÒåËü (\^).

 

POSIX Àà

 

ÕâЩ±»ÃüÃûµÄ¼¯¹æ¸ñÊÇÔÚ×Ö·ûÀàÖÐʹÓÃËüÃÇ×Ô¼º: "[z[:digit:]w-y]" ÏàͬÓÚ "[w-z0-9]". Òª·ñ¶¨ POSIX ×Ö·ûÀà, ÔÚµÚÒ»¸öðºÅºó·ÅÒ»¸öÍÑ×Ö·ûºÅ (^): "[[:^digit:]]".

µ± UCP ÆôÓÃʱ, һЩ POSIX ÀàÀ©Õ¹µ½Ò»Ð© Unicode ×Ö·û×Ó¼¯, ·ñÔòĬÈÏÏÞÖÆÔÚ 7 λ ASCII Âë.

[:alnum:]

ASCII ×ÖĸºÍÊý×Ö (µÈͬÓÚ [^\W_] »ò [A-Za-z0-9]).

µ± UCP ÆôÓÃʱ: Æ¥Åä Unicode ×ÖĸºÍÊý×Ö (µÈͬÓÚ [^\W_] »ò \p{Xan}).

[:alpha:]

ASCII ×Öĸ (µÈͬÓÚ [^\W\d_] »ò [A-Za-z]).

µ± UCP ÆôÓÃʱ: Æ¥Åä Unicode ×Öĸ (µÈͬÓÚ [^\W\d_] »ò \p{L}).

[:ascii:]

ASCII ×Ö·û (µÈͬÓÚ [\x00-\x7F]).

[:blank:]

¿Õ¸ñ»òÖƱí·û (@TAB) (µÈͬÓÚ \h »ò [\x09\x20]).

µ± UCP ÆôÓÃʱ: Æ¥Åä Unicode ˮƽ¿Õ¸ñ (µÈͬÓÚ \h).

[:cntrl:]

ASCII ¿ØÖÆ×Ö·û (µÈͬÓÚ Chr(0) ... Chr(31) Óë Chr(127)).

[:digit:]

ASCII Ê®½øÖÆÊý×Ö (µÈͬÓÚ \d »ò [0-9]).

µ± UCP ÆôÓÃʱ: Unicode Ê®½øÖÆÊý×Ö (µÈͬÓÚ \d or \p{Nd}).

[:graph:]

ASCII ´òÓ¡×Ö·û£¬µ«²»°üÀ¨¿Õ°× (µÈͬÓÚ Chr(33) ... Chr(126)).

[:lower:]

ASCII Сд×Öĸ (µÈͬÓÚ [a-z]).

µ± UCP ÆôÓÃʱ: Unicode Сд×Öĸ (µÈͬÓÚ \p{Ll}).

[:print:]

ASCII ´òÓ¡×Ö·û£¬°üÀ¨¿Õ¸ñ (µÈͬÓÚ Chr(32) ... Chr(126)).

[:punct:]

ASCII ±êµã·ûºÅ, [:print:] Åųý [:alnum:] ºÍ¿Õ°×, (33-47, 58-64, 91-96, 123-126).

[:space:]

ASCII ¿Õ°× (µÈͬÓÚ [\h\x0A-\x0D]). [:space:] Óë \s ²»Ì«Ò»Ñù: Ëü°üÀ¨ VT, Chr(11)).

[:upper:]

ASCII ´óд×Öĸ (µÈͬÓÚ [A-Z]).

µ± UCP ÆôÓÃʱ: Unicode ´óд×Öĸ (µÈͬÓÚ \p{Lu}).

[:word:]

ASCII "µ¥´Ê" ×Ö·û (µÈͬÓÚ \w »ò [[:alnum:]_]).

µ± UCP ÆôÓÃʱ: Unicode "µ¥´Ê" ×Ö·û (µÈͬÓÚ \w »ò [[:alnum:]_] »ò \p{Xwd}).

[:xdigit:]

Ê®Áù½øÖÆÊý×Ö (µÈͬÓÚ [0-9A-Fa-f]).

 

×éÓÃÀ´·Ö¸ô×ÓģʽºÍÇ¿´óµÄ±í´ïʽ¹¹Ôì¿é. ×é¿ÉÒÔÓлòûÓⶻñ, ²¢ÇÒ³ý×¢ÊÍ×éÖ®Íâ, ¿ÉÒÔ²»ÂÛÆäÀàÐ͵ÄǶÌ×ʹÓÃ. ÕýÔò±í´ïʽ¿ÉÒÔ°üº¬¶à´ï 65535 ¸ö²¶»ñ×é.

Ñ¡Ïî×Öĸ (ÈçÉÏËùÊö) ¿ÉÒÔ·½±ãµØÔڷDz¶»ñ×éÄÚ²åÈë "?" Óë ":" Ö®¼ä: "(?-i:[aeiou]{5})" Æ¥Åä 5 ¸öСдԪÒô×Öĸ. ´ËʱµÄÑ¡ÏîÊDZ¾µØ×é.

( ... )

²¶»ñ×é. ×éÖеÄÔªËØ°´Ë³Ðò´¦Àí£¬²¢ÇÒ¿ÉÒÔ×÷Ϊһ¸ö¿éÖظ´. ÀýÈç "(ab)+c" ½«Æ¥Åä "abc" »ò "ababc", µ«²»Æ¥Åä "abac".

²¶»ñ×é¼ÇµÃËüÃÇÆ¥ÅäµÄÎı¾, ÒÔ±ãÓÃÓÚ·´ÏòÒýÓÃ, ²¢ÇÒÌî³ä(¿ÉÑ¡)·µ»ØµÄÊý×é. ËüÃÇ°´À¨ºÅÄÚ³öÏÖµÄ˳Ðò´Ó 1 ¿ªÊ¼±àºÅ.

²¶»ñ×éÒ²¿ÉÒÔÒԵݹ鷽ʽ±»ÊÓΪÆäËû×Ó³ÌÐòÖеÄģʽ.

(?<name> ... )

ÃüÃûµÄ²¶»ñ×é. ¿ÉÒÔÉÔºóÒýÓõÄÃû³Æ£¬ÒÔ¼°Êý×Ö. ±ÜÃâʹÓõÄÃû³Æ "DEFINE" (²ÎÔÄ"ÓÐÌõ¼þģʽ").

(?: ... )

·Ç²¶»ñ×é. ²»¼Ç¼ƥÅä×Ö·ûµ½Êý×éÖÐ, ²»ÄÜÖØÐÂÓÃ×÷·´ÏòÒýÓÃ.

(?| ... )

·Ç²¶»ñ×éÓëÖØÖÃ. ÖØÖÃÿ¸ö¶¥²ãµÄÌæ´ú·½°¸, °üº¬²¶»ñ×é±àºÅ: "(?|(Mon)|(Tue)s|(Wed)nes|(Thu)rs|(Fri)|(Sat)ur|(Sun))day" ÓëƽÈÕÃû³ÆÆ¥Å䣬²¢²¶»ñ×é±àºÅ 1 µÄËõдÐÎʽ.

(?> ... )

Ô­×ӷDz¶»ñ×é: Ëø¶¨²¢ÓÀÔ¶²»»ØËÝ (¹é»¹) ÒÑÆ¥ÅäµÄ (²ÎÔÄÏÂÃæµÄÏÞ¶¨·ûºÍÌ°À·). Ô­×Ó×é, ÈçËùÓÐÏÞ¶¨·û, ×ÜÊÇÌ°À·µÄ.

(?# ... )

×¢ÊÍ×é: ×ÜÊDZ»ºöÂÔ (µ«¿ÉÒÔ²»°üº¬Ò»¸öÓÒÀ¨ºÅ, Òò´Ë×¢ÊÍ×é²»ÄÜǶÌ×).

 

ÏÞ¶¨·û (»òÖظ´·û) Ö¸¶¨Ç°ÃæµÄ×Ö·û, Àà, ÒýÓúÍ×éÔ¤¼ÆҪƥÅä¶àÉÙ. ¿ÉÒÔÑ¡ÔñÌ°À·ÏÞ¶¨·ûÈçºÎÓÐЧÖظ´µÄÐÐΪ·½Ê½. ÀýÈç "\d{3,5}" ½«Æ¥ÅäÖÁÉÙ 3 ¸öºÍ²»³¬¹ý 5 ¸öµÄÊ®½øÖÆÊý×Ö.

ĬÈÏģʽΪ "greedy", ±íʾÁ¿´Ê * + ? {...} ÔÚ²»»áµ¼ÖÂÆäÓàģʽʧ°ÜµÄÇé¿öÏÂ, ½«Æ¥Åä×µÄ×Ö·û´®. ÔÚ±í´ïʽ×îÇ°ÃæµÄ (?U) Ñ¡Ïî, »ò¾Ö²¿Á¿´Êºó·ÅÈëÒ»¸öÎʺÅ, Ì°À·¿ÉÒÔµ¹ÖÃÕû¸öģʽ.

·ÇÌ°À· (lazy) Öظ´Æ¥Åä×îСµÄ×Ö·û´®£¬ÈÔÈ»ÔÊÐíÆ¥ÅäģʽµÄÆäÓಿ·Ö. ÀýÈçÖ¸¶¨Ö÷Ìâ×Ö·û´® "aaab", ²¢Ö¸¶¨±í´ïʽ "(a*)([ab]+)" ½«²¶»ñ "aaa" È»ºóÊÇ "b", µ« "(?U)(a*)([ab]+)" ½«²¶»ñ "" È»ºóÊÇ "a": ÊÂʵÉÏ, ÒªÂú×ãÀÁ¶è "(a*)" ºÍ²¶»ñ "a" Æ¥ÅäÀÁ¶è "([ab]+)" ×Óģʽ, ²¶×½Ò»¸ö¿Õ×Ö·û´®ÊDz»ºÃµÄ.

ËùÓÐÏÞ¶¨·ûÊÇÔ­×ÓºÍÌ°À·. ÆäʵËüÃÇÊǼòµ¥µÄÔ­×Ó×é¶Ì±íʾ·¨. "\d++" ÊÇ "(?>\d+)" µÄÒ»¸öËټǷûºÅ, ËüµÄÐÐΪÊÇ "Æ¥ÅäÒ»¸öÍêÕûÐòÁеÄÒ»»ò¶à¸öÊý×Ö, µ«Ã»ÓÐÈκλØÍË". Æä½á¹ûÊÇ "\d++(\d)" ÓÀÔ¶²»ÄÜÆ¥Åä, ÒòΪ×îºóһλÊý×Ö (´ÖÌå×Ö) ÒѾ­Æ¥Åä¹ý, ²¢ÇÒÓÉ "\d++" Ëø¶¨. ÕâÊÇÏà¶Ô¼òµ¥µÄÌ°À·, ÆäÖÐ "\d+(\d)" ½«Ê×ÏÈÆ¥ÅäÒ»¸öÍêÕûÐòÁеÄÊý×Ö "\d+", È»ºó»ØËÝ£¬×îºó²ÅÔÊÐí "(\d)" ²¶»ñËü.

ʹÓÃÔ­×Ó×é»òÕ¼ÓÐÓûÏÞ¶¨·ûµÄÔ­ÒòÓÐÁ½¸ö: ҪôƥÅä¿ÉÄܻᵥ¶À³öÏÖµÄ×Ö·ûÐòÁÐ (ÀýÈç \R Öж¨ÒåµÄ "\r\n"), »òΪǿÖÆÔÚijЩÇé¿öÏ»ñÈ¡Éæ¼°ÎÞÏÞÖظ´µÄʧ°Ü½á¹û, ÒýÇæͨ³£»á»¨ºÜ³¤Ê±¼äÊÔͼÔÚʧ°Ü֮ǰ·Ö×éÊýÁ¿ÅÓ´óµÄ×éºÏ.

?

0 »ò 1, Ì°À·

?+

0 »ò 1, Õ¼ÓÐÓû

??

0 »ò 1, ÀÁ¶è

*

0 »ò¸ü¶à, Ì°À·

*+

0 »ò¸ü¶à, Õ¼ÓÐÓû

*?

0 »ò¸ü¶à, ÀÁ¶è

+

1 »ò¸ü¶à, Ì°À·

++

1 »ò¸ü¶à, Õ¼ÓÐÓû

+?

1 »ò¸ü¶à, ÀÁ¶è

{x}

¾«È· x

{x,y}

ÖÁÉÙ x ²¢ÇÒ²»³¬¹ý y, Ì°À·

{x,y}+

ÖÁÉÙ x ²¢ÇÒ²»³¬¹ý y, Õ¼ÓÐÓû

{x,y}?

ÖÁÉÙ x ²¢ÇÒ²»³¬¹ý y, ÀÁ¶è

{x,}

x »ò¸ü¶à, Ì°À·

{x,}+

x »ò¸ü¶à, Õ¼ÓÐÓû

{x,}?

x »ò¸ü¶à, ÀÁ¶è

X|Y

¿ÉÒÔÆ¥ÅäµÄ×Óģʽ X »ò Y: "ac|dc|ground" Æ¥Åä "ac" »ò "dc" »ò "ground"

 

·´ÏòÒýÓÃÔÊÐíÖظ´Ê¹ÓÃÒÔÇ°²¶»ñµÄ×éµÄÄÚÈÝ.

\n

ÒýÓÃÏÈÇ°²¶»ñ×éµÄ¾ø¶ÔÊýÁ¿. ¾¯¸æ: Èç¹ûûÓÐ×éºÅÂë n ´æÔÚ, Ëü¼ÆËã½á¹ûÖµ n Ìṩ n ÊÇÓÐЧµÄ°Ë½øÖÆ×Ö·ûÖµ, ·ñÔò³öÏÖ´íÎó.

ÓÉÓÚÕâÖÖÄ£ºýÐÔ, ÕâÖÖÐÎʽÊDz»ÍƼöµÄ. ÏÂÒ»¸ö°²È«ÓïÒåÐÎʽ»á¸üºÃ

\gn

ÒýÓÃÏÈÇ°²¶»ñ×éµÄ¾ø¶ÔÊýÁ¿

\g{n}

ÒýÓÃÏÈÇ°²¶»ñ×éµÄ¾ø¶ÔÊýÁ¿. ÓëÉÏÃæÀàËÆ, µ«Ã÷È·»®¶¨ n µÄ½áÊøλÖÃ: Õâ¶ÔÓÚºóÃæµÄ×Ö·û´æÔÚ(ÊÇ)Êý×ÖµÄÇé¿öºÜÓÐÓÃ

\g-n

ÒýÓÃÏÈÇ°²¶»ñ×éµÄÏà¶ÔÊý

\k<name>

ÒýÓÃÏÈÇ°²¶»ñ×éµÄÃû³Æ

 

ÒýÓÃ×Ó³ÌÐò

 

²¶»ñ×éÊÇ¿ÉÒÔµ÷ÓõÄ×Óģʽ(¿ÉÄÜÊǵݹé), ¿áËÆÒ»ÖÖ±à³ÌÓïÑÔÖеÄ×Ó³ÌÐò. ×ÓģʽֻÊÇÔÚµ±Ç°Æ¥ÅäµãÖØÐÂÔËÐÐ. Çë²ÎÔIJο¼ÎĵµµÄÏêϸÐÅÏ¢ºÍʾÀý.

(?R) »ò (?0)

µÝ¹é½øÈëÕû¸öÕýÔò±í´ïʽ

(?n)

µ÷ÓÃ×ÓģʽµÄ¾ø¶ÔÊý

(?+n)

µ÷ÓÃ×ÓģʽµÄÏà¶ÔÊý

(?-n)

µ÷ÓÃ×ÓģʽµÄÏà¶ÔÊý

(?&name)

°´Ãû³Æµ÷ÓÃ×Óģʽ

 

êµãºÍ¶ÏÑÔ²âÊÔ, ²»¸Ä±äÆ¥ÅäλÖÃ, Òò´ËûÓÐÏûºÄÒ²²»²¶»ñÈκζ«Î÷

 

êµã²âÊÔµ±Ç°Æ¥ÅäµãµÄλÖÃ.

^

ÔÚ×Ö·ûÀàÖ®Íâ, ÍÑ×Ö·ûÆ¥ÅäÖ÷ÌâÎı¾µÄ¿ªÊ¼, Èç¹ûÑ¡Ïî (?m) ¼¤»î, ÔòÖ»ÊÇÔÚÒ»¸ö·Ç×îÖÕ»»ÐзûÐòÁеĺóÃæ. ĬÈÏ»»ÐÐÐòÁÐÊÇ @CRLF.

ÔÚ×Ö·ûÀàµÄÄÚ²¿, ÁìÏ鵀 ^ ÅäºÏÀà (²»°üÀ¨ÄÇÀïÁгöµÄ×Ö·û).

$

ÔÚ×Ö·ûÀàÖ®Íâ, Æ¥ÅäÖ÷ÌâÎı¾µÄĩβ, Èç¹ûÑ¡Ïî (?m) ¼¤»î, ÔòÖ»ÊÇÔÚ»»ÐзûÐòÁÐ֮ǰ.

ÔÚ×Ö·ûÀàµÄÄÚ²¿, $ ±íʾ±¾Éí£¬Ò»¸öÃÀÔª·ûºÅ.

\A

½öÔÚ¾ø¶ÔÖ÷Ìâ×Ö·û´®µÄ¿ªÍ·Æ¥Åä, ºöÂÔ¶àÐÐÑ¡Ïî (?m). Èç¹ûÆ«ÒÆÁ¿²»ÊÇ 1 ½«ÓÀÔ¶²»»áÆ¥Åä.

\G

Æ¥ÅäÖ÷Ìâ×Ö·û´®µ±Ç°Î»ÖõĵÚÒ»¸öÆ¥ÅäÏî.

\z

½öÆ¥ÅäÖ÷Ìâ×Ö·û´®µÄ½áÊø, ºöÂÔ¶àÐÐÑ¡Ïî (?m).

\Z

½öÆ¥ÅäÖ÷Ìâ×Ö·û´®µÄ½áÊø, »òÔÚÒ»¸ö»»ÐзûÐòÁнáÊø֮ǰ, ºöÂÔ¶àÐÐÑ¡Ïî (?m).

 

¶ÏÑÔ²âÊÔÇ°Ò»¸ö×Ö·û (ºó´¦Àí), µ±Ç°Æ¥ÅäµãÔÚ (µ¥´Ê±ß½ç) »òÖ®ºó (ÏÈÐвéÕÒ).

\b

Æ¥Åä "µ¥´Ê" µÄ±ß½ç, ¼´×Ö·ûÖ®¼ä²»ÄÜͬʱ \w »ò \W. ²ÎÔÄ \w µÄ "µ¥´Ê" ÃèÊö. ÔÚ×Ö·ûÀàÄÚ²¿, \b ±íʾ "backspace(Í˸ñ×Ö·û)" (Chr(8))

\B

²»Æ¥Åäµ¥´Ê±ß½ç

(?=X)

ÕýÏòԤȡ: Æ¥ÅäµÄ×Óģʽ X Æ¥Å䵱ǰλÖõĿªÊ¼×Ö·û

(?!X)

¸ºÏòԤȡ: Æ¥ÅäµÄ×Óģʽ X ²»Æ¥Å䵱ǰλÖõĿªÊ¼×Ö·û

(?<=X)

ÕýÏòºóÐÐ: Æ¥ÅäµÄ×Óģʽ X Æ¥Å䵱ǰλÖÃ֮ǰµÄ×Ö·û. ģʽ X ±ØÐëÆ¥Åä¹Ì¶¨³¤¶ÈµÄ×Ö·û´®, ¼´²»ÄÜʹÓÃÈκβ»È·¶¨µÄÁ¿´Ê * + »ò ?

(?<!X)

¸ºÏòºóÐÐ: Æ¥ÅäµÄ×Óģʽ X ²»Æ¥Å䵱ǰλÖÃ֮ǰµÄ×Ö·û. ģʽ X ±ØÐëÆ¥Åä¹Ì¶¨³¤¶ÈµÄ×Ö·û´®, ¼´²»ÄÜʹÓÃÈκβ»È·¶¨µÄÁ¿´Ê * + »ò ?

 

ÔÚijЩÇé¿öÏÂ, ΪÁËÉÔºóÆ¥ÅäÖ÷Ìâ×Ö·û´®Öиü¶àÏà¹ØÊý¾Ý, "ºöÂÔ"µ½µ±Ç°ÎªÖ¹Æ¥ÅäµÄ¶«Î÷ÊDZØÒªµÄ.

 

\K

¸´Î»¿ªÊ¼Æ¥ÅäÔÚÖ÷Ìâ×Ö·û´®µÄµ±Ç°µã. Çë×¢Ò⣬ÒѾ­²¶»ñµÄ×é±»¶ªÏ²»¹Ü£¬ÈÔÈ»Ìî³ä·µ»ØµÄÊý×é; Òò´ËËü×ÜÊÇ¿ÉÒÔÉÔºó·´ÏòÒýÓÃ. \K µÄ¶¯×÷ÏàËƺó´¦Àíµ«²»ÍêÈ«Ïàͬ, ÒòΪ \K ¿ÉÒÔ¹¤×÷ÔÚ²»Í¬³¤¶ÈµÄ¸üÌæ.

 

ÕâЩ¹¹ÔìÊÇÀàËÆÓÚ If...EndIf Óë If...Else...EndIf ¿é.

(?(Ìõ¼þ)È·¶¨µÄ-ģʽ)

ÔÊÐíÓÐÌõ¼þÖ´ÐеÄģʽ.

(?(Ìõ¼þ)È·¶¨µÄ-ģʽ|·ñ¶¨µÄ-ģʽ)

½á¹ûÈ¡¾öÓÚ (Ìõ¼þ) µÄÔÚ²»Í¬Ä£Ê½Ö®¼äµÄÑ¡Ôñ.

(n)

²âÊÔ¾ø¶ÔÊýÁ¿µÄ²¶»ñ×éÊÇ·ñÓë n Æ¥Åä.

(+n)

²âÊÔÏà¶ÔÊýÁ¿µÄ²¶»ñ×éÊÇ·ñÓë +n Æ¥Åä.

(-n)

²âÊÔÏà¶ÔÊýÁ¿µÄ²¶»ñ×éÊÇ·ñÓë -n Æ¥Åä.

(<name>)

²âÊÔÃû³Æ²¶»ñ×éÊÇ·ñÓë name Æ¥Åä.

(R)

²âÊÔÊÇ·ñ·¢ÉúÈκÎÖÖÀàµÄµÝ¹é.

(Rn)

²âÊÔ×î½üµÝ¹é²¶»ñ×é¾ø¶ÔÊýÁ¿ÊÇ·ñΪ n.

(R&name)

²âÊÔ×î½üµÝ¹é²¶»ñ×éÃû³ÆÊÇ·ñΪ name.

(DEFINE)

Èç¹û²»Ê¹Óà ·ñ¶¨µÄ-ģʽ, ÔÊÐíÆäËüµØ·½¶¨ÒåµÄ¿ÉÓÃ×Ó³ÌÐò. "(?x) (?(DEFINE) (?<byte> 2[0-4]\d | 25[0-5] | 1\d\d | [1-9]?\d) )" ¶¨ÒåÒ»¸öÃûΪ "byte" µÄ×Ó³ÌÐò, Æ¥ÅäÒ»¸ö IPv4 µØÖ·µÄÈκÎ×é¼þ. ʵ¼ÊµØÖ·¿ÉÓÉ "\b (?&byte) (\.(?&byte)){3} \b" Æ¥Åä.

(¶ÏÑÔ)

ÕâÀïµÄ ¶ÏÑÔ ÊÇÕýÊý»ò¸ºÊý, ¶ÏÑÔΪԤȡ»ò»òºó´¦ÀíÖ®Ò».

 

ÕâЩѡÏî, Ö»ÊǼòµ¥Ìáµ½ÁËתÒåºÍ½á¹¹; ºÎʱÒÔ¼°ÈçºÎʹÓÃËüÃǵÄÏêϸÐÅÏ¢Çë²Î¼û²Î¿¼Îĵµ.

 

ÓÅÐãµÄÉèÖúÍÑ¡Ïî

 

(?J)

ÔÊÐíÖظ´µÄ×é»ò×Ó³ÌÐòÃû³Æ (ÕâÀï²»ÔÙ½øÒ»²½ÌÖÂÛ)

(?X)

µ¼ÖÂijЩÓï¾³ÐòÁÐÒý·¢´íÎó, ¶ø²»ÊÇÁ¼ÐÔµÄ

(*J)

ÆôÓà Javascript µÄ¼æÈÝÐÔ (ÕâÀï²»ÔÙ½øÒ»²½ÌÖÂÛ)

(*LIMIT_MATCH=n)

ÏÞÖÆ n µÄÆ¥ÅäÊýÁ¿

(*LIMIT_RECURSION=n)

ÏÞÖÆ n µÄµÝ¹é¼¶±ð

(*NO_START_OPT)

½ûÓÃһЩÓÅ»¯ (ÕâÀï²»ÔÙ½øÒ»²½ÌÖÂÛ)

 

»ØËÝ¿ØÖÆ

(*ACCEPT)

Ç¿ÖƵ±Ç°×Ó³ÌÐò»ò¶¥²ãģʽÁ¢¼´Æ¥Åä³É¹¦

(*FAIL) or (*F)

Ç¿ÖÆÁ¢¼´Æ¥Åäʧ°Ü

(*MARK:name) or (*:name)

(Çë²ÎÔIJο¼Îĵµ.)

(*COMMIT)

(Çë²ÎÔIJο¼Îĵµ.)

(*PRUNE)

(Çë²ÎÔIJο¼Îĵµ.)

(*PRUNE:name)

(Çë²ÎÔIJο¼Îĵµ.)

(*SKIP)

(Çë²ÎÔIJο¼Îĵµ.)

(*SKIP:name)

(Çë²ÎÔIJο¼Îĵµ.)

(*THEN)

(Çë²ÎÔIJο¼Îĵµ.)

(*THEN:name)

(Çë²ÎÔIJο¼Îĵµ.)

 

   1. µ± UCP ÆôÓÃ, °¸Àý¼ì²âÆ¥ÅäÊÊÓÃÓÚÍêÕûµÄ Unicode ƽÃæ 0. ÔÚ Unicode ÖÐÒ²ÓÐÉÙÁ¿µÄ¶à¶ÔÒ»Ó³É䣬ÏñСдϣÀ°×ÖĸµÄ sigma; ÕâЩ¶¼Ö§³Ö UCP ÆôÓà PCRE.

 

   2. ±¸Óõļ¸¸öתÒåÐÎʽ´æÔÚÓë Perl, Ruby, Python, JavaScript, .NET ºÍÆäËûÒýÇæµÄ¼æÈÝÐÔ. ²»ÒªÊ¹Óô˴¦Î´ÁгöµÄ½á¹¹: ijЩ¾Í¸É´à²»¹¤×÷, ÓÐЩ»áÌṩ´íÎóµÄ½á¹û, ÓÐЩ»áÔì³ÉÑÏÖصÄÎÊÌ⣬»òÖ»ÄÜÊDZÀÀ£.

 

   3. ĬÈϵĻ»ÐзûÐòÁÐÔ¼¶¨ÊDz»»á´òÆÆµÄ @CRLF »ò»òµ¥¶ÀµÄ @CR »ò @LF. \R Æ¥ÅäÏàͬµÄÒ»×é. È·ÐÅÄãµÄÊý¾Ý! Èç¹ûÄãÖªµÀÄãµÄÖ÷ÌâʹÓõ¥¶ÀµÄ @LF »ò @CR ÊÇÖ¸±ðµÄ»»Ðзû, Äã¿ÉÄÜÒª¸Ä±ä»»ÐзûÔ¼¶¨ºÍ/»òÆ¥Åä \R (¼û "ÉèÖÃ").

 

ÁíÇë²ÎÔÄ ÕýÔò±í´ïʽ Ö¸ÄÏ, ÔÚÆäÖÐÄú¿ÉÒÔÔËÐнű¾À´²âÊÔÄúµÄÕýÔò±í´ïʽµÄÈ¡Öµ.

 

º¯ÊýʾÀý

Option 1, using offset parameter

#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
Local $aArray = 0, _
        $iOffset = 1
While 1
    $aArray = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '(?i)<test>(.*?)</test>', $STR_REGEXPARRAYMATCH, $iOffset)
    If @error Then ExitLoop
    $iOffset = @extended
    For $i = 0 To UBound($aArray) - 1
        MsgBox($MB_SYSTEMMODAL, "RegExp Test with Option 1 - " & $i, $aArray[$i])
    Next
WEnd

Option 2, single return, php/preg_match() style

#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
Local $aArray = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '(?i)<test>(.*?)</test>', $STR_REGEXPARRAYFULLMATCH)
For $i = 0 To UBound($aArray) - 1
    MsgBox($MB_SYSTEMMODAL, "RegExp Test with Option 2 - " & $i, $aArray[$i])
Next

Option 3, global return, old AutoIt style

#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
Local $aArray = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '(?i)<test>(.*?)</test>', $STR_REGEXPARRAYGLOBALMATCH)
For $i = 0 To UBound($aArray) - 1
    MsgBox($MB_SYSTEMMODAL, "RegExp Test with Option 3 - " & $i, $aArray[$i])
Next

Option 4, global return, php/preg_match_all() style

#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
Local $aArray = StringRegExp('F1oF2oF3o', '(F.o)*?', $STR_REGEXPARRAYGLOBALFULLMATCH)
Local $aMatch = 0
For $i = 0 To UBound($aArray) - 1
    $aMatch = $aArray[$i]
    For $j = 0 To UBound($aMatch) - 1
        MsgBox($MB_SYSTEMMODAL, "RegExp Test with Option 4 - " & $i & ',' & $j, $aMatch[$j])
    Next
Next

----------------------------------------

¸Ãº¯Êý¿ÉÒÔͨ¹ýÃüÁî exect µ÷ÓÃ

²Î¼û:

StringRegExpReplace, StringInStr

Àý×Ó
copy

exect=$var_s=ClipGet()||$var_n=StringRegExp('$var_s','(\d{1,4}x\d{1,4})') <IF> $var_n = 0 <THEN> exect=$var_s='100x100' <ENDIF> exect=_ViewValues('$var_s') ;; Èç¹û¼ôÌù°åµÄÄÚÈݲ»ÊÇ0x0»ò00x00»ò000x000»ò0000x0000ÐÎʽµÄ×Ö·û´®(ÆäÖпÉÒÔÊÇÈκÎÊý×Ö¶ø²»ÊÇÁã)£¬Ôò±äÁ¿$var_s = 100x100

 

exect=$var_s0=ClipGet()||$var_s1=StringRegExp('$var_s0','(\d{1,4}x\d{1,4})')=0?'100x100':'$var_s0'||_ViewValues('$var_s1') ;; Èç¹û¼ôÌù°åµÄÄÚÈݲ»ÊÇ0x0»ò00x00»ò000x000»ò0000x0000ÐÎʽµÄ×Ö·û´®(ÆäÖпÉÒÔÊÇÈκÎÊý×Ö¶ø²»ÊÇÁã)£¬Ôò±äÁ¿$var_s = 100x100

 

exect=$var_s1=StringRegExp(ClipGet(),'(\d{1,4}x\d{1,4})')=0?'100x100':ClipGet()||_ViewValues('$var_s1') ;; Èç¹û¼ôÌù°åµÄÄÚÈݲ»ÊÇ0x0»ò00x00»ò000x000»ò0000x0000ÐÎʽµÄ×Ö·û´®(ÆäÖпÉÒÔÊÇÈκÎÊý×Ö¶ø²»ÊÇÁã)£¬Ôò±äÁ¿$var_s = 100x100

 

exect=$var_s=##[input=BOX73]||$var_ar=StringRegExp(FileRead(@CRLF&'C:\dictionary.txt'&@CRLF),'[\r\n](['&'$var_s'&']+)[\r\n]',3)||_ViewValues($var_ar)||$var_s=_ArrayToString($var_ar,@CRLF) bufsr=##$var_s ;;·¢Ë͵½¼ôÌù°åµÄËùÓе¥´Ê×é³ÉµÄ×ÖĸÊäÈëÔÚ¶Ô»°¿òÖУ¬ÕâÊÇ×Öµädictionary.txtµÄÒ»²¿·Ö(¸ÃÁбí°üº¬µ¥´Ê£¬ÅÅÁÐËùÓиø¶¨µÄ¼¯ºÏ×ÖĸÖظ´µÄ×ÖĸûÓÐÈ·Çеij¤¶È)

exect=$var_s=##[input=BOX73]||$var_ar=StringRegExp(@CRLF&FileRead('C:\dictionary.txt')&@CRLF,'[\r\n](['&'$var_s'&']{3,6})[\r\n]',3)||_ViewValues($var_ar)||$var_s=_ArrayToString($var_ar,@CRLF) bufsr=##$var_s ;; ·¢Ë͵½¼ôÌù°åµÄËùÓе¥´ÊÐγɴÓ×Öĸdictionary.txtµÄÒ»²¿·ÖÔÚ¶Ô»°¿òÖÐÊäÈëµÄ×Öĸ(¸ÃÁбí°üÀ¨×Öĸ£¬ÅÅÁÐËùÓÐ×ÖĸµÄÖظ´µÄ×ÖĸºÍ³¤¶ÈΪ5¸ö×Ö·û)

exect=$var_s=##[input=BOX73]||$var_ar=StringRegExp(@CRLF&FileRead('C:\dictionary.txt')&@CRLF,'[\r\n](['&'$var_s'&']{5})[\r\n]',3)||_ViewValues($var_ar)||$var_s=_ArrayToString($var_ar,@CRLF) bufsr=##$var_s ;; ·¢Ë͵½¼ôÌù°åµÄËùÓе¥´Ê×é³ÉµÄ×ÖĸÔÚ×Öµädictionary.txtµÄ¶Ô»°¿òÖÐÊäÈëµÄ×Öĸ(¸ÃÁбí°üÀ¨×Ö£¬ÅÅÁÐËùÓеÄ×Öĸ£¬Öظ´µÄ×ÖĸºÍ³¤¶È´Ó3µ½6¸ö×Ö·û)

exect=$var_s=##[input=BOX73]||$var_ar=StringRegExp(@CRLF&FileRead('C:\dictionary.txt')&@CRLF,'[\r\n](['&'$var_s'&']{[input=BOX74],[input=BOX75]})[\r\n]',3)||_ViewValues($var_ar)||$var_s=_ArrayToString($var_ar,@CRLF) bufsr=##$var_s ;; ·¢Ë͵½¼ôÌù°åµÄËùÓе¥´Ê×é³ÉµÄ×ÖĸÔÚ¶Ô»°¿òÖÐÊäÈëµÄ×Öµädictionary.txtµÄÒ»²¿·Ö(¸ÃÁбí°üÀ¨µ¥´Ê£¬ÅÅÁÐËùÓÐ×ÖĸµÄÖظ´µÄ×ÖĸºÍ³¤¶ÈÔÚ¶Ô»°¿òÖÐÉèÖÃ)

exect=$var_ac=StringRegExp(ClipGet()&@CR&@CR,'(?m)^([^\r\n]*)',3)||$var_ab=StringSplit('TOTALCMD#BAR#DATA|%%COMMANDER_PATH%%\TCIMG.exe|#|Wcmicons.dll,0|','|',2)||$var_ab[2]=$var_ac[0]||$var_ab[4]=$var_ac[1]||_ArrayToClip($var_ab,@CRLF) ;; ´Ó¼ôÌù°å(ÃüÁîºÍÃèÊö)ÖеÄ2Ðд´½¨Ò»¸öTCMG°´Å¥ÎªTotal Commander²¢Ð´Èë¼ôÌù°å

 

exect=_ViewValues(StringRegExp(ClipGet(),'(?m)^([^\r\n]*)',3)) ;; ½«¼ôÌù°åµÄÄÚÈÝ·Ö³ÉÊý×éÐкͲ鿴Êý×éa

 

exect=_ViewValues(StringRegExp(FileRead('%P%N'),'(?m)^([^\r\n]*)',3),'%P%N') ;; ÔÚÊý×éÐкÍÊÓͼÊý×éÖн«ÎļþµÄÄÚÈݲð·ÖΪ¹â±ê

 

sends=-1 exect=$var_a='GLOBALSENDS<1>' GLOBALEXECT<a> exect=$var_name=StringRegExp('GLOBALEXECT<1>','^[~~-_]?$',0)?'>':'test'||_ViewValues('$var_name') ;; ¼ì²é¼ôÌù°åµÄÀý×Ó£ºÈç¹ûÔÚ»º³åÇø¿Õ¸ñ£¬ - £¬_»ò¿Õ£¬ÄÇô$var_nameÊÇÓ÷ûºÅ>£¬·ñÔò²âÊÔ

 

exect=$var_a=StringRegExp(FileRead('%P%N'),'(?ms)@font-face(?:[\s]+)?\{[^\{]+\}',3)||_ViewValues($var_a) ;; ÔÚÓαêÏ·ָî³ÉÊý×éÎļþcssËùÓеÄƬ¶Î@ font-face

 

exect=$var_a=StringRegExp(FileRead('%P%N'),'(?ms)@font-face(?:[\s]+)?\{[^\{]+\}',3)||_ViewValues($var_a)||$var_a=_ArrayUnique($var_a)||_ViewValues($var_a) ;; ÔÚÓαêÏ·ָî³ÉÊý×écssÎļþËùÓеÄƬ¶Î@ font-faceºÍɾ³ýÖظ´µÄƬ¶Î

 

sends=\<link\h+rel\=[\''|\']?[^>]+\>??1 exect=$var_a=_ArrayUnique(StringRegExp(FileRead('%P%N'),$GLOBALSENDS[1],3))||_ViewValues($var_a) ;; ÔÚ¹â±êÏ»ñÈ¡Ö¸¶¨µÄÎļþ¶Î£¬²¢ÔÚ±íÖÐÏÔʾËüÃÇ

 

exect=$var_s=ClipGet()||$var_i=StringRegExp(ClipGet(),'([^A-Za-z\d])',0)?MsgBox(48+4096,'§²§Ö§Ù§å§Ý§î§ä§Ñ§ä','§¹§Ú§ã§Ý§à~~§Ó~~§Ò§å§æ§Ö§â§Ö~~§ß§Ö~~§ñ§Ó§Ý§ñ§Ö§ä§ã§ñ~~§ç§ï§ê§Ö§Þ.')&_Exit():1||$var_i=StringLen('$var_s')||$var_n=$var_i=8?3:($var_i=32?1:($var_i=64?6:($var_i=128?8:MsgBox(48+4096,'§²§Ö§Ù§å§Ý§î§ä§Ñ§ä','§¹§Ú§ã§Ý§à~~§Ó~~§Ò§å§æ§Ö§â§Ö~~§ß§Ö §á§à§Õ§ç§à§Õ§Ú§ä~~§á§à§Õ~~§å§ã§Ý§à§Ó§Ú§Ö~~§á§â§à§Ó§Ö§â§Ü§Ú.')&_Exit())))||$var_path=$var_n&'%P%N' <IF> <info=f$var_path|1//> = $var_s <THEN> exect=MsgBox(64+4096,'§²§Ö§Ù§å§Ý§î§ä§Ñ§ä','§¬§à§ß§ä§â§à§Ý§î§ß§í§Ö~~§ã§å§Þ§Þ§í~~§ã§à§Ó§á§Ñ§Õ§Ñ§ð§ä.') <ELSE> exect=MsgBox(48+4096,'§²§Ö§Ù§å§Ý§î§ä§Ñ§ä','§¬§à§ß§ä§â§à§Ý§î§ß§í§Ö~~§ã§å§Þ§Þ§í~~§ß§Ö~~§ã§à§Ó§á§Ñ§Õ§Ñ§ð§ä.') <ENDIF> ;; È¡¾öÓÚ»º³åÏß³¤¶ÈУÑéÎļþ½øÐбȽϹâ±êºÍ¼ôÌù°åÏ£ºÈç¹ûÈçͼ8Ëùʾ£¬±È½Ï·¢ÉúCRC32£¬Èç¹û32  -  MD5£¬Èç¹û64  -  SHA256£¬Èç¹û128  -  SHA512£¬¾ßÓÐÊÖ¶¯¹Ø±ÕÒ»¸öµ¯³ö´°¿Ú£¬±¨¸æ½á¹û

 

exect=$var_s=StringRegExp(ClipGet(),'(?i)^[a-z]',0)?'1,2':'2,1' sends=-1!!-1||#L$var_s GLOBALSENDS<a> ;; Èç¹ûÔÚ¼ôÌù°åÉϵĵÚÒ»¸ö×ÖĸµÄÎ÷Àï¶û×Öĸ±í£¬È»ºó¸Ä±äµÚÒ»ºÍµÚ¶þÐÐ

 

exect=$var_a=StringRegExp(FileRead('%P%N'),'(?m)((?:[^\r\n]+(?:\r\n|$)+){5})',3)||_ViewValues($var_a) ;; ½«¹â±êϵÄÎı¾Îļþ²ð·Ö5ÐÐ

 

slist=%L exect=$var_a=StringRegExp(FileRead('GLOBALSLIST<t>'),'(?m)((?:[^\r\n]+(?:\r\n|$)+){5})',3) GLOBALEXECT<a> ;; ½«ËùÑ¡¶ÔÏóµÄ·¾¶·ÖΪ5×é

 

slist=%L exect=$var_a=StringRegExp(FileRead('GLOBALSLIST<t>'),'(?m)((?:[^\r\n]+(?:\r\n|$)+){1,5})',3) GLOBALEXECT<a> ;; ½«ËùÑ¡¶ÔÏóµÄ·¾¶·Ö³É5 +µÄÓàÊý(Èç¹û·ÖÅä²»ÊÇ5µÄ±¶Êý)

up2

tcimage © §¡§Ó§Ö§â§Ú§ß §¡§ß§Õ§â§Ö§Û §Õ§Ý§ñ Total Commander Image Averin-And@yandex.ru