使用简单的模式
要匹配某个模式(正则表达式)和$_的关系,可以将模式放在正斜线(//)之间
- $_ = "yabba dabba doo";
-
if(/abba/){
-
print "It matched\n";
-
}
模式中的分组括号也是元字符。在数学中,括号(())用来表示分组。例如,模式/fred+/能匹配上如fredddddddd,这样的字符串,但这种字符串在实际中没有什么用途。模式/(fred)+/能匹配上像fredfredfred 这样的字符串,这更可能是你所希望的。那么模式/(fred)*/呢?它将匹配上像hello,world 这样的字符串
选择符
竖线(|),在这种用法中通常被读作“或(or)”,意思是匹配左边的或者右边的。如果竖线左边没有匹配上,则匹配右边。因此,/fred|barney|betty/将匹配出现过fred,或者barney,或者betty 的字符串
字符类
字符类,是方括号[]中的一列字符,可以匹配上括号内出现的任意单个字符。它匹配一个字符,但这个字符可以是列中的任意一个。字符类[abcwxyz]可以匹配上括号内七个字母中的任意一个。为了方便,我们可以使用连字号(-)来表示某个范围的字母,因此上例也可以写做[a-cw-z]
字符类的简写任何数字的类,[0-9],可以被简写为:\d
\w 被称作“word’字符:[A-Za-z0-9_] \w 不能匹配单词,而只能匹配单个字符。为了匹配整个单词,需要后接加号
你可能希望得到这三种简写形式的补集。如果那样的话,你可以使用[^\d], [^\w], 和[^\s],其含义分别是,非数字的字符,非word(记住我们对word 的定义)的字符,和非空白的字符
阅读(404) | 评论(0) | 转发(0) |