^a 以a 为开头
[^a] 非a
apple(|\t+)pear 中间出现一次以上空格,制表符或者两者混合的字符串
apple(+|\t+)pear 中间的分隔符全是空格或者全部制表符
(apple|pear)
[a|b]
[ab] 只匹配字符集中列出的任何一个
[^def] 匹配这三个字符以为的任何字符
[a-z] 匹配a-z 直接的任何字符
[^n-z] 匹配n,-,z 以外的任何字符
/apple|pear/ 择一匹配
$_="aa11bb";
/(.)\111/ perl会匹配 \111
/(.)g{1}11/ g{1} =\1
\s 匹配任意空白字符
\R 匹配断行的字符,包括dos,unix 下的 \r\n, \n
\w 单词字符,= [a-zA-Z0-9_]
反义简写
\D =[^\d]
\W =[^\w]
\S =[^\s]
/[0-9a-fA-F]/ 匹配十六进制数
. 匹配任意一个字符,(除了换行符\n)
[\d\D] 表示任何数字或非数字,即匹配任意字符,包括换行符
[^\d\D] 匹配既不是数字也不是非数字的字符,即什么都不匹配
用正则表达式匹配
/fred/ 以双斜线为定界符,可以省略开头的m
m%^https://% 不可以省略m
if(/yes/i) /i 忽略大小写
$_="I have an apple\n and a pear\n ";
if(/apple.*pear/s) /s 匹配任意字符。.无法匹配换行符,如果字符串中有换行符,希望能匹配到这些换行符,就用/s,他会将模式中的每个点号装换成[\d\D]来处理。
[^\n] 同[\N],匹配任意字符
/ -? [0-9] /x 同/-?[0-9]]/ , \x 允许加入空白符
m{\Ahttps?://}i \A, 词首锚定
m{\.png\z}i \z 绝对词尾锚定,, \Z行尾锚定,允许后面出现换行符
print /\.png\Z/;
print "$_\n" if /\.png\z/;
/\A\s*\Z/ 匹配空白行
/\bfred\b/ \b 只匹配每组\w字符的开头或者结尾,可匹配fred
/\bsearch\B/ 匹配searches,searching,但不能匹配search, researching. \B 匹配所有\b不能匹配的位置
$string = "i:love:perl";
$string =~ s/:/*/; #此时 $string="i*love:perl";
$string = "i:love:perl";
$string =~ s/:/*/g; #此时 $string="i*love*perl";
$string =~ tr/*/ /; #此时 $string="i love perl";
$string = "www22cgi44";
$string =~ s/(\d+)/$1*2/e; # (/d+)代表 $string 中的一个或多个数字字符,将这些数字字符执行 *2 的操作,因此最后 $string 变成了 "www44cgi88"。