PerlµÄÕýÔò±í´ïʽ¹¦ÄÜÊ®·ÖÇ¿´ó£¬»ù±¾ÉÏÊdz£ÓÃÓïÑÔÖÐ×îÇ¿´óµÄ£¬ºÜ¶àÓïÑÔÈçJavaÉè¼ÆÕýÔòʽ֧³ÖµÄʱºò¶¼²Î¿¼PerlÕýÔò±í´ïʽ¡£±¾ÎĽéÉÜPerlÕýÔò±í´ïʽÖÐ×î»ù±¾¡¢×î³£ÓõIJ¿·Ö¡£
Ò»¡¢ÕýÔò±í´ïʽÔËËã·û
=~ ÕýÔò±í´ïʽƥÅäÔËËã·û£¬×ó±ßÊÇ´ýÆ¥Åä×Ö·û´®£¬ÓÒ±ßÊÇÕýÔò±í´ïʽ£¬Æ¥Åä½á¹ûÉèÖÃÔÚ$1,$2µÈ±äÁ¿ÖУ¬ÔÚscalerÉÏÏÂÎÄÖУ¬³É¹¦Æ¥Åä·µ»ØÆ¥Åä¸öÊý£¬·ñÔò·µ»Øfalse¡£ÀýÈç $var =~ /foo/;
!~ ÕýÔò±í´ïʽƥÅäÔËËã·û£¬ºÍ=~ ²»Í¬µÄÊÇËüºöÂÔÆ¥Åä½á¹û£¬ÇÒ·µ»ØÖµÏà·´¡£ÀýÈç $var !~ /foo/;
ÕýÔò±í´ïʽÔËËã·ûÓÒ±ßÊÇÕýÔò±í´ïʽ£¬ÓÐÈçÏÂÈýÖÖÐÎʽ£º
1. Æ¥Åäģʽ m/pattern/igmsoxc
m±íʾmatch£¬patternÊÇÕýÔòʽÄÚÈÝ£¬·Ö¸ô·û/¿ÉÒÔÓÃÈÎÒâÆäËû×Ö·ûÈç#Ìæ»»£¬igmsoxcÊÇ¿ÉÑ¡µÄ²ÎÊý£¬ÒâÒåÈçÏ£º
i ºöÂÔ´óСд
g Æ¥ÅäËùÓзûºÏµÄ£¨Ä¬ÈÏÊÇÆ¥ÅäµÚÒ»¸ö·ûºÏµÄ£©
m ¶àÐÐģʽ£¬^ºÍ$·Ö±ðÆ¥ÅäÐеĿªÊ¼ºÍ½áβ£¨Ä¬ÈÏÆ¥Åä×Ö·û´®µÄ¿ªÊ¼ºÍ½á⣩
s µ¥ÐÐģʽ£¬¡°.¡± Æ¥Åä¡°\n¡±£¨Ä¬Èϲ»Æ¥Å䣩
o compile pattern Once
x eXtended legibility - free whitespace and comments
c don't reset pos on failed matches when using /g
2. ´æ´¢Ä£Ê½ qr/pattern/imsox
qr½«ÕýÔò±í´ïʽ´æ´¢µ½Ò»¸ö±äÁ¿ÖУ¬ÕâÑù¿ÉÒÔ·´¸´Ê¹Ó㬿ÉÑ¡ÏîÒâÒåÓëmÏàͬ
3. Ìæ»»Ä£Ê½ s/pattern/replacement/igmsoxe
s´ú±ísubstitutes£¬½«Æ¥ÅäµÄģʽpatternÌæ»»Îªreplacement£¬¶àÁËÒ»¸ö¿ÉÑ¡Ï
e ½«replacement×÷Ϊһ¸ö±í´ïʽִÐÐ
4. Ò»´ÎÐÔÆ¥Åäģʽ ?pattern?
ºÍm/pattern/Ïàͬ£¬µ«ÊÇÖ»½øÐÐÒ»´ÎÆ¥Å䣬?²»ÄÜÓÃÆäËû·Ö¸ô·ûÌæ»»
¶þ¡¢»ù±¾Óï·¨ÔªËØ
\ ×Ö·ûתÒå
. Æ¥Åä³ý\nÍâµÄÈÎÒâ×Ö·û
^ Æ¥ÅäÐлò×Ö·û´®¿ªÍ·
$ Æ¥ÅäÐлò×Ö·û´®½áβ
* 0¸ö»ò¶à¸ö
+ 1¸ö»ò¶à¸ö
? 0¸ö»ò1¸ö
{...} Ö¸¶¨¸öÊý
[...] ×Ö·ûÀ࣬ƥÅäÀ¨ºÅÖеÄÈÎÒâÒ»×Ö·û
(...) Æ¥Åä×飬ƥÅäºó¿ÉÒÔÓÃ$1,$2µÈ»ñÈ¡ÏàÓ¦µÄÆ¥Åä×é
(?:...) ¾Û¼¯£¬Æ¥Åäºó²»ÄÜ$1,$2µÈ»ñÈ¡ÏàÓ¦µÄÆ¥Åä×飬ËÙ¶È»á¿ìЩ
| ǰÕß»òºóÕߣ¬Ò»°ãºÍÀ¨»¡ÅäºÏʹÓÃ
\1, \2 ... ÕýÔòʽÖз´ÒýÓÃÆ¥Åä×é
Èý¡¢³£¼ûתÒå×Ö·û
\a Alarm (beep)
\e Escape
\f Formfeed
\n Newline
\r Carriage return
\t Tab
\037 Any octal ASCII value
\x7f Any hexadecimal ASCII value
\x{263a} A wide hexadecimal value
\cx Control-x
\N{name} A named character
\l Lowercase next character
\u Titlecase next character
\L Lowercase until \E
\U Uppercase until \E
\Q Disable pattern metacharacters until \E
\E End case modification
\b word boudariy
ËÄ¡¢×Ö·ûÀà
[...]Æ¥ÅäÀ¨ºÅÖеÄÈÎÒâÒ»¸ö×Ö·û£¬µ«Êǵ±µÚÒ»¸ö×Ö·ûÊÇ^ʱÊÇÏà·´µÄ£¬Æ¥Åä³ýÁËÀ¨ºÅÖеÄ×Ö·ûÍâµÄÈÎÒâ×Ö·û¡£ÁíÍ⻹ÓÐa-zÕâÑùµÄ¼òд·½Ê½´úÌæaµ½zµÄËùÓÐ×Ö·û¡£ÀýÈ磺
[amy] Match 'a', 'm' or 'y'
[f-j] Dash specifies "range"
[f-j-] Dash escaped or at start or end means 'dash'
[^f-j] Caret indicates "match any character _except_ these"
һЩ×Ö·ûÀàÓиü¼òµ¥µÄ±í´ï·½Ê½£¬È磺
\d A digit [0-9]
\D A nondigit [^0-9]
\w A word character [a-zA-Z0-9_]
\W A non-word character [^a-zA-Z0-9_]
\s A whitespace character [ \t\n\r\f]
\S A non-whitespace character [^ \t\n\r\f]
Îå¡¢ÌØÊâ±ê¼Ç
^ Match string start (or line, if /m is used)
$ Match string end (or line, if /m is used) or before newline
\b Match word boundary (between \w and \W)
\B Match except at word boundary (between \w and \w or \W and \W)
\A Match string start (regardless of /m)
\Z Match string end (before optional newline)
\z Match absolute string end
\G Match where previous m//g left off
Áù¡¢Öظ´
Maximal Minimal Allowed range
------- ------- -------------
{n,m} {n,m}? Must occur at least n times but no more than m times
{n,} {n,}? Must occur at least n times
{n} {n}? Must occur exactly n times
* *? 0 or more times (same as {0,})
+ +? 1 or more times (same as {1,})
? ?? 0 or 1 time (same as {0,1})


