?????? ?????
??????
????????????
???????快????????
1?????+
2????? []??[^]
3????? *???
4????????
5??????????????????
6??那??
7?????快?????I
8???????朱?????
9????????????
10????????????????
11????????
12?????????????
13????????????????忱???
14????????????
15???????????
???????????
1????????扭??????(g???)
2???????妊忱(i???)??
3?????????????????(m???)
4????????汐????I??
5???????????????????
6???????抗?????
?]?I??????
?????????????
???????????
1??????????????????????
2??????????
3?????????????????
4???????
??????
??????????????????????快?????????忌???????/def/????def?????‾????????split??????????????????????@array
= split(/ /, $line);
????????????
=~??!~
=~??????????????$result
= $var =~ /abc/;??????????????????????????????????true???????????0????false??!~??????
?????????????????????????孝??鉸
if ($question =~
/please/) {
print
("Thank you for being polite!\n");
}
else {
print
("That was not very polite!\n");
}
???????快????????
PERL??????????宏????????????????宏????????芍?
1????? +
+??汎????????????????????鉸/de+f/?def??deef??deeeeef???????????????????????????/ab+/???????abbc?????????abb????????ab??
??????我?????????????????????????﹞??
@array =
split (/ +/, $line);
???split????????????????????????????米?????????$line??????????@array??????????????????????????????????快????????$line????扭????@array????????????????TAB??????????????????????????
2?????
[]??[^]
[]??汎????????????快????????/a[0123456789]c/?????a???????c???????????+???????????/d[eE]+f/???def??dEf??deef??dEdf??dEEEeeeEef???^?????????????????????鉸/d[^deE]f/???d???e?????f?????????
3?????
*???
??????+?????????????*???0????1??????????????????0????1???????????/de*f/???df??def??deeeef???/de?f/???df??def??
4????????
????????????忘???????????????????????????????????忌??"\"???鉸/\*+/??\*????????*??????????????????????????????^忌??????/\\/????PERL5?扭????????\Q??\E????^
5??????????????????
????????/a[0123456789]c/??????a???????????c???????????????????????/a[0-9]c/????????[a-z]???????妊忱?????[A-Z]????????忱??????????妊忱???????????????????/[0-9a-zA-Z]/??
6??那??
| 那 |
???? |
| ^
?? \A |
???????
|
| $
?? \Z |
?????汕 |
| \b |
??????? |
| \B |
?????????? |
??1??/^def/??????def????????????/$def/??????def??汕??????????????????/^def$/?????????def(?)??\A??\Z???????????^??$?????
??2??????????????????
if ($varname
=~ /^\$[A-Za-z][_0-9a-zA-Z]*$/) {
print
("$varname is a legal scalar variable\n");
} elsif
($varname =~ /^@[A-Za-z][_0-9a-zA-Z]*$/) {
print
("$varname is a legal array variable\n");
} elsif
($varname =~ /^[A-Za-z][_0-9a-zA-Z]*$/) {
print
("$varname is a legal file variable\n");
} else {
print
("I don't understand what $varname is.\n");
}
??3??\b??????????/\bdef/???def??defghi????def????????????????abcdef??/def\b/???def??abcdef????def??汕?????????????defghi??/\bdef\b/?????????def?????/\bdef/?????$defghi?????$????????????????????
??4??\B???????????/\Bdef/???abcdef??????????def??/def\B/???defghi???/\Bdef\B/???cdefg??abcdefghi??????????def,defghi,abcdef??
7?????快?????I
????????????
$pattern =
"[\\t ]+";
@words =
split(/$pattern/, $line);
8???????朱???
| E
?????? |
???? |
??朱 |
| \d |
???????? |
[0-9] |
| \D |
????????????????
|
[^0-9] |
| \w |
????????? |
[_0-9a-zA-Z] |
| \W |
??????????? |
[^_0-9a-zA-Z] |
| \s |
??? |
[
\r\t\n\f] |
| \S |
???? |
[^
\r\t\n\f] |
????/[\da-z]/????????????妊忱?????
9????????????
???"."?????????????????????????*???芍?
10????????????????
?????{}??????????????????????鉸/de{1,3}f/???def,deef??deeef??/de{3}f/???deeef??/de{3,}f/???????3??e??d??f???/de{0,3}f/???????3??e??d??f???
11????????
???"|"????????????????????????鉸/def|ghi/???def??ghi??
???????????????????
if ($number =~
/^-?\d+$|^-?0[xX][\da-fa-F]+$/) {
print
("$number is a legal integer.\n");
} else {
print
("$number is not a legal integer.\n");
}
???? ^-?\d+$
?????????????^-?0[xX][\da-fa-F]+$
???????????????
12?????????????
???????????????????????????????????????????\n???????????????????
/\d{2}([\W])\d{2}\1\d{2}/ ???
12-05-92
26.11.87
07 04 92??
???/\d{2}([\W])\d{2}\1\d{2}/
?????/(\d{2})([\W])\1\2\1/ ??????????????17-17-17????????????????17-05-91???
13????????????????忱???
???????????????????????????忱???
| ??????? |
???? |
| () |
????? |
| +
* ? {} |
??????? |
| ^
$ \b \B |
那 |
| | |
??? |
14????????????
???????????????忌??/????????????m??????????鉸
m!/u/jqpublic/perl/prog1!
?????/\/u\/jqpublic\/perl\/prog1/
??????????'????????????????????I????????????????????????????????????????????芍?
15???????????
??????????????辰?????????????$n??????????????$&??
$string =
"This string contains the number 25.11.";
$string =~
/-?(\d+)\.?(\d+)/; # ??????25.11
$integerpart
= $1; # now $integerpart = 25
$decimalpart
= $2; # now $decimalpart = 11
$totalpart =
$&; # now totalpart = 25.11
???????????
| ??? |
???? |
| g |
??????扭?????? |
| i |
?????妊忱 |
| m |
??????????? |
| o |
??????? |
| s |
??????????? |
| x |
???????快??? |
1????????扭??????(g???)
@matches =
"balata" =~ /.a/g; # now @matches = ("ba",
"la", "ta")
?????????
while
("balata" =~ /.a/g) {
$match =
$&;
print
("$match\n");
}
??????
ba
la
ta
??????????g??????迆???pos???????∩?????????
$offset =
pos($string);
pos($string)
= $newoffset;
2???????妊忱(i???)??
/de/i ???de,dE,De??DE??
3?????????????????(m???)
???????㏒?^????????????????????米???快??????$????????????快??汕??
4????????汐????I??
$var = 1;
$line = <STDIN>;
while ($var < 10) {
$result =
$line =~ /$var/o;
$line =
<STDIN>;
$var++;
}
??缶????/1/??
5???????????????????
/a.*bc/s????????axxxxx
\nxxxxbc????/a.*bc/?????????????
6???????抗?????
/\d{2} ([\W]) \d{2} \1
\d{2}/x?????/\d{2}([\W])\d{2}\1\d{2}/??
?]?I??????
???s/pattern/replacement/????完??????????????pattern??????????replacement???鉸
$string =
"abc123def";
$string =~
s/123/456/; # now $string = "abc456def";
???I?????????????????$n????s/(\d+)/[$1]/???????I???????????????????????{},*,+?????s/abc/[def]/????abc?I?[def]??
?I??????????????㊣??
| ??? |
???? |
| g |
??????快???????? |
| i |
???????快??妊忱 |
| e |
?I???????????? |
| m |
?????????????? |
| o |
???????? |
| s |
?????????????? |
| x |
???????快??? |
???e?????I???????????????????????I?????????????鉸
$string =
"0abc1";
$string =~
s/[a-zA-Z]+/$& x 2/e; # now $string = "0abcabc1"
?????????????
??????????I????????鉸tr/string1/string2/???????string2??I?????????完?????string1?快?????????I?string2?快????????????string1?快?????????I?string2?快????????????????????鉸
$string =
"abcdefghicba";
$string =~
tr/abc/def/; # now string = "defdefghifed"
??string1??string2??????????????I?string2???????????????string1????????????????????????????I?????
?????????????????㏒?
| ??? |
???? |
| c |
????????汛?????? |
| d |
????????????? |
| s |
?????????????????????? |
??$string =~ tr/\d/ /c;?????戒?????????I????$string
=~ tr/\t //d?????tab????
$string =~ tr/0-9/ /cs??????????????????I???????
???????????
PERL???PERL4????UNIX????????????快??宏??????????????????(?<c>pattern)??????c??????????pattern???????????????????
1??????????????????????
??PERL?????孝????????????????????????孝?????????????????????????????????/(?:a|b|c)(d|e)f\1/?快?\1?????????d??e????????a??b??c??
2??????????
???????????????????????i??m??s??x????????????????/(?option)pattern/???????/pattern/option??
3?????????????????
??????????????/pattern(?=string)/????????????????string???????????(?!string)????????????string???????鉸
$string =
"25abc8";
$string =~
/abc(?=[0-9])/;
$matched =
$&; # $&???????????????abc????????abc8
4???????
PERL5?扭????????????#?????????鉸
if ($string
=~ /(?i)[a-z]{2,3}(?# match two or three alphabetic characters)/
{
...
}
????? ????? ??
paper | appdir | ssv
捚粔韁藝婓盄