|
字符类,是方括号[]中的一列字符,可以匹配上括号内出现的任意单个字符。它匹配一个字符,但这个字符可以是列中的
任意一个。
例如,字符类[abcwxyz]可以匹配上括号内七个字母中的任意一个。为了方便,我们可以使用连字号(-)来表示某个范围的字
母,因此上例也可以写做[a-cw-z]。上面例子省略的字符不多,但像[a-zA-Z]将非常方便,利用它不需要输入52 个字符◆。
你可以使用和双引号相同的字符简写方法,例如类[\000-\177]可以匹配上任意的七比特的ASCII 字符。◆。当然,字符类
只是模式的一部分,单独的字符类在Perl 中没什么实际的意义。例如,你可能见到如下的代码:
◆注意这52 个字母不包括Å, É, Î, Ø, 和Ü。如果允许处理Unicode,则上述字符的范围将自动的变化,来做正确的工作。
◆这里,使用的是ASCII 而非EBCDIC。
$_ = “The HAL-9000 requires authorization to continue.”;
if(/HAL-[0-9]+/){
print “The string mentions some model of HAL computer.\n”;
}
有时,指出没有被字符类包含的字符更加容易。字符类前使用符号^将取此字符类的补集。也就是说,[^def]]将匹配上这三
个字符中之外的任意单个字符。[^n\-z]将匹配上n, -, z 之外的任何字符。(连接符(-)前面使用反斜线的原因是,它在此字符
类中有特别的含义(表示字符的范围:译者注)。但/HAL-[0-9]+/中第一个连接符(-)前不需要反斜线,因为此时的连接符不
会被理解为有特殊的含义。) |
|