²Ä¤»³¹¡@¼Ò¦¡¤Ç°t ¡½¡i ²¤¶ ¡j | |||||||||||||||||||||||||||||||||||||||||
| ¼Ò¦¡«ü¦b¦r²Å¦ê¤¤´M§äªº¯S©w§Ç¦Cªº¦r²Å¡A¥Ñ¤Ï±×½u¥]§t¡J/def/§Y¼Ò¦¡def¡C¨ä¥Îªk¦pµ²¦X¨ç¼Æsplit±N¦r²Å¦ê¥Î¬Y¼Ò¦¡¤À¦¨¦hÓ³æµü¡J@array = split(/ /, $line); | |||||||||||||||||||||||||||||||||||||||||
¡½¡i ¤Ç°t¾Þ§@²Å=~¡B!~ ¡j | |||||||||||||||||||||||||||||||||||||||||
| =~ÀËÅç¤Ç°t¬O§_¦¨¥\¡J$result = $var =~ /abc/;Y¦b¸Ó¦r²Å¦ê¤¤§ä¨ì¤F¸Ó¼Ò¦¡¡A«hªð¦^«D¹sÈ¡A§Ytrue¡A¤£¤Ç°t«hªð¦^0¡A§Yfalse¡C!~«h¬Û¤Ï¡C ³o¨âÓ¾Þ§@²Å¾A©ó±ø¥ó±±»s¤¤¡A¦p¡J if ($question =~ /please/) { print ("Thank you for being polite!\n"); } else { print ("That was not very polite!\n"); } | |||||||||||||||||||||||||||||||||||||||||
¡½¡i ¼Ò¦¡¤¤ªº¯S®í¦r²Å ¡j | |||||||||||||||||||||||||||||||||||||||||
| PERL¦b¼Ò¦¡¤¤¤ä«ù¤@¨Ç¯S®í¦r²Å¡A¥i¥H°_¨ì¤@¨Ç¯S®íªº§@¥Î¡C 1¡B¦r²Å + +·N¨ýµÛ¤@өΦhÓ¬Û¦Pªº¦r²Å¡A¦p¡J/de+f/«üdef¡Bdeef¡Bdeeeeefµ¥¡C¥¦ºÉ¶q¤Ç°tºÉ¥i¯à¦hªº¬Û¦P¦r²Å¡A¦p/ab+/¦b¦r²Å¦êabbc¤¤¤Ç°tªº±N¬Oabb¡A¦Ó¤£¬Oab¡C ·í¤@¦æ¤¤¦U³æµü¶¡ªºªÅ®æ¦h©ó¤@ӮɡA¥i¥H¦p¤U¤À³Î¡J @array = split (/ +/, $line); ª`¡Jsplit¨ç¼Æ¨C¦¸¹J¨ì¤À³Î¼Ò¦¡¡AÁ`¬O¶}©l¤@Ó·s³æµü¡A¦]¦¹Y$line¥HªÅ®æ¥´ÀY¡A«h@arrayªº²Ä¤@Ó¤¸¯À§Y¬°ªÅ¤¸¯À¡C¦ý¨ä¥i¥H°Ï¤À¬O§_¯u¦³³æµü¡A¦pY$line¤¤¥u¦³ªÅ®æ¡A«h@array«h¬°ªÅ¼Æ²Õ¡C¥B¤W¨Ò¤¤TAB¦r²Å³Q·í§@¤@Ó³æµü¡Cª`·N×¥¿¡C 2¡B¦r²Å []©M[^] []·N¨ýµÛ¤Ç°t¤@²Õ¦r²Å¤¤ªº¤@Ó¡A¦p/a[0123456789]c/±N¤Ç°ta¥[¼Æ¦r¥[cªº¦r²Å¦ê¡C»P+Áp¦X¨Ï¥Î¨Ò¡J/d[eE]+f/¤Ç°tdef¡BdEf¡Bdeef¡BdEdf¡BdEEEeeeEefµ¥¡C^ªí¥Ü°£¨ä¤§¥~ªº©Ò¦³¦r²Å¡A¦p¡J/d[^deE]f/¤Ç°td¥[«De¦r²Å¥[fªº¦r²Å¦ê¡C 3¡B¦r²Å *©M? ¥¦Ì»P+Ãþ¦ü¡A°Ï§O¦b©ó*¤Ç°t0Ó¡B1өΦhÓ¬Û¦P¦r²Å¡A?¤Ç°t0Ó©Î1Ó¸Ó¦r²Å¡C¦p/de*f/¤Ç°tdf¡Bdef¡Bdeeeefµ¥¡F/de?f/¤Ç°tdf©Îdef¡C 4¡BÂà¸q¦r²Å ¦pªG§A·Q¦b¼Ò¦¡¤¤¥]§t³q±`³Q¬Ý§@¯S®í·N¸qªº¦r²Å¡A¶·¦b¨ä«e¥[±×½u"\"¡C¦p¡J/\*+/¤¤\*§Yªí¥Ü¦r²Å*¡A¦Ó¤£¬O¤W±´£¨ìªº¤@өΦhÓ¦r²Åªº§t¸q¡C±×½uªºªí¥Ü¬°/\\/¡C¦bPERL5¤¤¥i¥Î¦r²Å¹ï\Q©M\E¨ÓÂà¸q¡C 5¡B¤Ç°t¥ô·N¦r¥À©Î¼Æ¦r ¤W±´£¨ì¼Ò¦¡/a[0123456789]c/¤Ç°t¦r¥Àa¥[¥ô·N¼Æ¦r¥[cªº¦r²Å¦ê¡A¥t¤@ºØªí¥Ü¤èªk¬°¡J/a[0-9]c/¡AÃþ¦üªº¡A[a-z]ªí¥Ü¥ô·N¤p¼g¦r¥À¡A[A-Z]ªí¥Ü¥ô·N¤j¼g¦r¥À¡C¥ô·N¤j¤p¼g¦r¥À¡B¼Æ¦rªºªí¥Ü¤èªk¬°¡J/[0-9a-zA-Z]/¡C 6¡BÁã¼Ò¦¡
¨Ò1¡J/^def/¥u¤Ç°t¥Hdef¥´ÀYªº¦r²Å¦ê¡A/$def/¥u¤Ç°t¥Hdefµ²§Àªº¦r²Å¦ê¡Aµ²¦X°_¨Óªº/^def$/¥u¤Ç°t¦r²Å¦êdef(?)¡C\A©M\Z¦b¦h¦æ¤Ç°t®É»P^©M$¤£¦P¡C
¨Ò¡J/[\da-z]/¤Ç°t¥ô·N¼Æ¦r©Î¤p¼g¦r¥À¡C
14¡B«ü©w¼Ò¦¡©w¬É²Å ¯Ê¬Ùªº¡A¼Ò¦¡©w¬É²Å¬°¤Ï±×½u/¡A¦ý¨ä¥i¥Î¦r¥Àm¦Û¦æ«ü©w¡A¦p¡J m!/u/jqpublic/perl/prog1! µ¥»ù©ó/\/u\/jqpublic\/perl\/prog1/ ª`¡J·í¥Î¦r¥À'§@¬°©w¬É²Å®É¡A¤£°µÅܶq´À´«¡F·í¥Î¯S®í¦r²Å§@¬°©w¬É²Å®É¡A¨äÂà¸q¥\¯à©Î¯S®í¥\¯à§Y¤£¯à¨Ï¥Î¡C 15¡B¼Ò¦¡¦¸§ÇÅܶq ¦b¼Ò¦¡¤Ç°t«á½Õ¥Î«¥Î³¡¤Àªºµ²ªG¥i¥ÎÅܶq$n¡A¥þ³¡ªºµ²ªG¥ÎÅܶq$&¡C $string = "This string contains the number 25.11."; $string =~ /-?(\d+)\.?(\d+)/; # ¤Ç°tµ²ªG¬°25.11 $integerpart = $1; # now $integerpart = 25 $decimalpart = $2; # now $decimalpart = 11 $totalpart = $&; # now totalpart = 25.11 | |||||||||||||||||||||||||||||||||||||||||
¡½¡i ¼Ò¦¡¤Ç°t¿ï¶µ ¡j | |||||||||||||||||||||||||||||||||||||||||
1¡B¤Ç°t©Ò¦³¥i¯àªº¼Ò¦¡(g¿ï¶µ) @matches = "balata" =~ /.a/g; # now @matches = ("ba", "la", "ta") ¤Ç°tªº´`Àô¡J while ("balata" =~ /.a/g) { $match = $&; print ("$match\n"); } µ²ªG¬°¡J ba la ta ·í¨Ï¥Î¤F¿ï¶µg®É¡A¥i¥Î¨ç¼Æpos¨Ó±±»s¤U¦¸¤Ç°tªº°¾²¾¡J $offset = pos($string); pos($string) = $newoffset; 2¡B©¿²¤¤j¤p¼g(i¿ï¶µ)¨Ò /de/i ¤Ç°tde,dE,De©MDE¡C 3¡B±N¦r²Å¦ê¬Ý§@¦h¦æ(m¿ï¶µ) ¦b¦¹±¡ªp¤U¡A^²Å¸¹¤Ç°t¦r²Å¦êªº°_©l©Î·sªº¤@¦æªº°_©l¡F$²Å¸¹¤Ç°t¥ô·N¦æªº¥½§À¡C 4¡B¥u°õ¦æ¤@¦¸Åܶq´À´«¨Ò $var = 1; $line = <STDIN>; while ($var < 10) { $result = $line =~ /$var/o; $line = <STDIN>; $var++; } ¨C¦¸§¡¤Ç°t/1/¡C 5¡B±N¦r²Å¦ê¬Ý§@³æ¦æ¨Ò /a.*bc/s¤Ç°t¦r²Å¦êaxxxxx \nxxxxbc¡A¦ý/a.*bc/«h¤£¤Ç°t¸Ó¦r²Å¦ê¡C 6¡B¦b¼Ò¦¡¤¤©¿²¤ªÅ®æ /\d{2} ([\W]) \d{2} \1 \d{2}/xµ¥»ù©ó/\d{2}([\W])\d{2}\1\d{2}/¡C | |||||||||||||||||||||||||||||||||||||||||
¡½¡i ´À´«¾Þ§@²Å ¡j | |||||||||||||||||||||||||||||||||||||||||
| »yªk¬°s/pattern/replacement/¡A¨ä®ÄªG¬°±N¦r²Å¦ê¤¤»Ppattern¤Ç°tªº³¡¤À´«¦¨replacement¡C¦p¡J $string = "abc123def"; $string =~ s/123/456/; # now $string = "abc456def"; ¦b´À´«³¡¤À¥i¨Ï¥Î¼Ò¦¡¦¸§ÇÅܶq$n¡A¦ps/(\d+)/[$1]/¡A¦ý¦b´À´«³¡¤À¤£¤ä«ù¼Ò¦¡ªº¯S®í¦r²Å¡A¦p{},*,+µ¥¡A¦ps/abc/[def]/±N§âabc´À´«¬°[def]¡C ´À´«¾Þ§@²Åªº¿ï¶µ¦p¤Uªí¡J
ª`¡Je¿ï¶µ§â´À´«³¡¤Àªº¦r²Å¦ê¬Ý§@ªí¹F¦¡¡A¦b´À´«¤§«e¥ýpºâ¨äÈ¡A¦p¡J | |||||||||||||||||||||||||||||||||||||||||
¡½¡i ½Ķ¾Þ§@²Å ¡j | |||||||||||||||||||||||||||||||||||||||||
| ³o¬O¥t¤@ºØ´À´«¤è¦¡¡A»yªk¦p¡Jtr/string1/string2/¡C¦P¼Ë¡Astring2¬°´À´«³¡¤À¡A¦ý¨ä®ÄªG¬O§âstring1¤¤ªº²Ä¤@Ó¦r²Å´À´«¬°string2¤¤ªº²Ä¤@Ó¦r²Å¡A§âstring1¤¤ªº²Ä¤GÓ¦r²Å´À´«¬°string2¤¤ªº²Ä¤GÓ¦r²Å¡A¨Ì¦¹Ãþ±À¡C¦p¡J $string = "abcdefghicba"; $string =~ tr/abc/def/; # now string = "defdefghifed" ·ístring1¤ñstring2ªø®É¡A¨ä¦h§E¦r²Å´À´«¬°string2ªº³Ì«á¤@Ó¦r²Å¡F·ístring1¤¤¦P¤@Ó¦r²Å¥X²{¦h¦¸®É¡A±N¨Ï¥Î²Ä¤@Ó´À´«¦r²Å¡C ½Ķ¾Þ§@²Åªº¿ï¶µ¦p¤U¡J
¦p$string =~ tr/\d/ /c;§â©Ò¦³«D¼Æ¦r¦r²Å´À´«¬°ªÅ®æ¡C$string =~ tr/\t //d¡F§R°£tab©MªÅ®æ¡F $string =~ tr/0-9/ /cs¡F§â¼Æ¦r¶¡ªº¨ä¥¦¦r²Å´À´«¬°¤@ӪŮæ¡C | |||||||||||||||||||||||||||||||||||||||||
¡½¡i ÂX®i¼Ò¦¡¤Ç°t ¡j | |||||||||||||||||||||||||||||||||||||||||
| PERL¤ä«ùPERL4©M¼Ð·ÇUNIX¼Ò¦¡¤Ç°t¾Þ§@©Ò¨S¦³ªº¤@¨Ç¼Ò¦¡¤Ç°t¯à¤O¡C¨ä»yªk¬°¡J(?<c>pattern)¡A¨ä¤¤c¬O¤@Ó¦r²Å¡Apattern¬O°_§@¥Îªº¼Ò¦¡©Î¤l¼Ò¦¡¡C 1¡B¤£¦s¶J¬A¸¹¤ºªº¤Ç°t¤º®e ¦bPERLªº¼Ò¦¡¤¤¡A¬A¸¹¤ºªº¤l¼Ò¦¡±N¦s¶J¦b¤º¦s¤¤¡A¦¹¥\¯à§Y¨ú®ø¦s¶J¸Ó¬A¸¹¤ºªº¤Ç°t¤º®e¡A¦p/(?:a|b|c)(d|e)f\1/¤¤ªº\1ªí¥Ü¤w¤Ç°tªºd©Îe¡A¦Ó¤£¬Oa©Îb©Îc¡C 2¡B¤º´O¼Ò¦¡¿ï¶µ ³q±`¼Ò¦¡¿ï¶µ¸m©ó¨ä«á¡A¦³¥|Ó¿ï¶µ¡Ji¡Bm¡Bs¡Bx¥i¥H¤º´O¨Ï¥Î¡A»yªk¬°¡J/(?option)pattern/¡Aµ¥»ù©ó/pattern/option¡C 3¡BªÖ©wªº©M§_©wªº¹w¨£¤Ç°t ªÖ©wªº¹w¨£¤Ç°t»yªk¬°/pattern(?=string)/¡A¨ä·N¸q¬°¤Ç°t«á±¬°stringªº¼Ò¦¡¡A¬Û¤Ïªº¡A(?!string)·N¸q¬°¤Ç°t«á±«Dstringªº¼Ò¦¡¡A¦p¡J $string = "25abc8"; $string =~ /abc(?=[0-9])/; $matched = $&; # $&¬°¤w¤Ç°tªº¼Ò¦¡¡A¦¹³B¬°abc¡A¦Ó¤£¬Oabc8 4¡B¼Ò¦¡ª`ÄÀ PERL5¤¤¥i¥H¦b¼Ò¦¡¤¤¥Î?#¨Ó¥[ª`ÄÀ¡A¦p¡J if ($string =~ /(?i)[a-z]{2,3}(?# match two or three alphabetic characters)/ { ... } | |||||||||||||||||||||||||||||||||||||||||
![]() CopyRight © 2001¸¾ º~ ¬Ó ´ÂAll Rights Reserved |