找回密码
 注册
查看: 2160|回复: 0

perl语言正则表达式中的字符类

[复制链接]
发表于 2011-11-14 20:33:42 | 显示全部楼层 |阅读模式
字符类,是方括号[]中的一列字符,可以匹配上括号内出现的任意单个字符。它匹配一个字符,但这个字符可以是列中的
任意一个。
例如,字符类[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]+/中第一个连接符(-)前不需要反斜线,因为此时的连接符不
会被理解为有特殊的含义。)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-22 04:04 , Processed in 0.022330 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表