教程精选:正则表达式快速入门
时间:2007-10-27 来源:不详 作者:林仙
方括号之外的元字符有这些:
\
有数种用途的通用转义符
^
断言目标的开头(或在多行模式下行的开头,即紧随一换行符之后)
$
断言目标的结尾(或在多行模式下行的结尾,即紧随一换行符之前)
.
匹配除了换行符外的任意一个字符(默认情况下)
[
字符类定义开始
]
字符类定义结束
|
开始一个多选一的分支
(
子模式开始
)
子模式结束
?
扩展(的含义,我们已经在介绍模式修正符里看到过它的使用。它也可以是0或1数量限定符,以及数量限定符最小值
*
匹配0个或多个的数量限定符
匹配1个或多个的数量限定符
{
最少/最多数量限定开始
}
最少/最多数量限定结束
模式中方括号内的部分称为“字符类”。字符类中可用的元字符为:
织梦好,好织梦
\
通用转义字符
^
排除字符类,但仅当其为第一个字符时有效
-
指出字符范围
在这里,最值得一提是“\”这个元字符。之所以重点对它进行讲解是因为这一个元字符有多种不同的用法,在不同情况下代表不同的含义,而且使用频率非常高,是个很容易让人迷惑的地方。
第一种用法前面我们已经提过,是作为通用转义字符使用,如果其后跟着一个非字母数字字符,则取消该字符可能具有的任何特殊含义。此种将反斜线用作转义字符的用法适用于无论是字符类之中还是之外。例如“\\”代表一个单独的反斜线“\”。
第二种用途提供了一种在模式中以可见方式去编码不可打印字符的方法。模式中完全可以包括不可打印字符,除了代表模式结束的二进制零,例如,可以用“\a”代表alarm,即BEL字符(0x07),或用“\cx”代表"control-x",其中x是任意字符。当然,这种方法表示的不一定非得是不可打印字符,实际上,可以用“\xhh(十六进制代码为hh的字符)”和“\ddd(八进制代码为ddd的字符)”来以编码的形式表达任何单字节字符,例如“\040”可以用来表示空格。
反斜线的第三个用法是指定通用字符类型,这些字符类型序列可以出现在字符类之中和之外。每一个匹配相应类型中的一个字符。如果当前匹配点在目标字符串的结尾,以上所有匹配都失败,因为没有字符可供匹配。有以下这些常见的通用字符类:
文章评论
共有位Admini5网友发表了评论 查看完整内容