x? 匹配0次或一次x字符串
x* 匹配0次或多次x字符串,但匹配可能的最少次数; x+ 匹配1次或多次x字符串,但匹配可能的最少次数
.* 匹配0次或一次的任何字符; .+ 匹配1次或多次的任何字符
{m} 匹配刚好是m个的指定字符串; {m,} 匹配 m个 以上 的指定字符串
{m,n} 匹配在 m个 以上 n个 以下 的指定字符串 /\d{5,12}/ 5-12位数字 /cg{2,4}i/找到c后跟着2个到4个g再跟着i的字符串
[] 匹配符合 []内的字符 [] 匹配一组字符中的一个,如/a[0123456789]c/将匹配a加数字加c的字符串。与+联合使用例:/d[eE]+f/匹配def、 dEf、deef、dEdf、dEEEeeeEef等。
[^] 匹配不符合 [] 内的字符 ^表示除其之外的所有字符,如:/d[^deE]f/匹配d加非e字符加f的字符串。
[0-9] 匹配所有数字字符;
[a-z] 匹配所有小写字母字符;
[^0-9] 匹配所有非数字字符;
[^a-z] 匹配所有非小写字母字符
^ 匹配字符开头的字符 /^perl/ 找到开头是 perl 的字符串
$ 匹配字符结尾的字符 /perl$/ 找到结尾是 perl 的字符串
\d 匹配一个数字的字符,和 [0-9] 语法一样; \d+ 匹配多个数字字符串,和 [0-9]+ 语法一样
\D 非数字,其他同 \d; \D+ 非数字,其他同 \d+
\w 英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样; \w+ 和 [a-zA-Z0-9]+ 语法一样
\W 非英文字母或数字的字符串,和 [^a-zA-Z0-9] 语法一样; \W+ 和 [^a-zA-Z0-9]+ 语法一样
\s 空格,和 [\n\t\r\f] 语法一样; \s+ 和 [\n\t\r\f]+ 一样
\S 非空格,和 [^\n\t\r\f] 语法一样; \S+ 和 [^\n\t\r\f]+ 语法一样
\b 匹配以英文字母,数字为边界的字符串; \B 匹配不以英文字母,数值为边界的字符串
a|b|c 匹配符合a字符 或是b字符 或是c字符 的字符串; abc 匹配含有 abc 的字符串
(pattern) () 这个符号会记住所找寻到的字符串,是一个很实用的语法。第一个 () 内所找到的字符串变成 $1 这个变量或是 \1 变量,第二个 () 内所找到的字符串变成 $2 这个变量或是 \2 变量,以此类推下去。
/pattern/i i 这个参数表示忽略英文大小写,也就是在匹配字符串的时候,不考虑英文的大小写问题。
\ 如果要在 pattern 模式中找寻一个特殊字符,如 "*",则要在这个字符前加上 \ 符号,这样才会让特殊字符失效
4、转义字符
如果你想在模式中包含通常被看作特殊意义的字符,须在其前加斜线"\"。如:/\*+/中\*即表示字符*,而不是上面提到的一个或多个字符的含义。斜线的表示为/\\/。在PERL5中可用字符对\Q和\E来转义。
在反斜杠前面 加上反斜杠 即可,当然这是在有内插的上下文环境中,例如双引号内部,正则表达式内部。
若是无内插的上下文环境,例如,单引号内部,那就直接一个反斜杠即可了,反正不会转义。