正则表达式
1、元字符(通配符)
> . :用于匹配除了换行符(\n)以外的任何单个字符。
eg: m/p.t/ 可以匹配pat, pot, pet等。 不可以匹配paat, peat, pt。
> + :使+前边的字符只少出现一次。
eg: m/pe+t/ 可以匹配pet, peeet, peeeeet等。 不可以匹配pt, peat等。
> * :使*前边的字符进行0次或多次匹配。
eg: m/pe*t/ 可以匹配pt, pet, peeeeet等。 不可以匹配pat, peat等。
> ? :使?前边的字符进行0次或1次匹配(不能超过一次)。
eg: m/pe?t/ 可以匹配pt, pet。 不可以匹配pat, peeeet等。
2、精确指定模式匹配次数
形式: pat{n, m} n是最小匹配次数,m是最大匹配次数,n,m可以身略一个,但不能同时省略。
eg: /x{5,10} / x至少出现5次,但是不超过 10次。
/x{9,} / x至少出现9次,也可能出现更多次。
/x{0,4} / x最多出现4次,也可能根本不出现。
/x{8} / x必须正好出现8次,不能多,也不能少。
3、字符类
Perl允许指定一个字符类,以便匹配类中任意一个字符。该字符类用[]括起来。字符类可以使用范围指定符‘-’。
eg: [abcde] 用于匹配a、b、c、d或e中的任何一个字符
[a-e] 与上面相同。用于匹配 a、b、c、d或e中的任何一个字符
[Gg] 用于匹配大写字母 G或小写字母 g
[0-9] 用于匹配一个数字
[0-9]+ 用于顺序匹配一个或多个数字
[A-Za-z]{5} 用于匹配任何一组 5个字母字符
[*!@ #$%&()] 用于匹配这些符号中的任何一个
在[]中的开始位置插入^,将使该类变为无效,用于匹配字符类以外的任何字符。
常用字符类的表示方式:
\w 一个单词字符,与 [a-zA-z0-9_]相同
\W 一个非单词字符(与 \w相反)
\d 一个数字,与 [0-9]相同
\D 一个非数字
\s 一个白空间字符,与 [\t\f\r\n]相同
\S 一个非白空间字符
4、分组和选择
在一个正则表达式的多个模式之间插入‘|’分隔符后,就出现了选择。当被匹配的内容中能匹配正则表达式中的任意一个模式时,就说明匹配成功。例如: m/dogs|cats/ 将匹配含有dogs或cats的任意字符串。
5、位置通配符
有两通配符用于明确指出要匹配内容在字符串中的位置(开头、结尾)。
^ : 插在正则表达式的开始位置。要求其后的内容要在被匹配字符串的开始位置。
$ : 插入在正则表示的结尾处,要求其前边的内容要在被匹配字符串的结束位置。
6、替换
s/PATTERN/REPLACE/ 用REPLACE的内容替换匹配与PATTERN模式的内容。
eg:$_ = "Our house is in the middle of out street";
s/middle/end/; # Is now: Our house is in the end of our street.
s/in/at/; # Is now: Our house is at the end of our street.
阅读(405) | 评论(0) | 转发(0) |