首先让我们看两个特殊的符号^和$他们的作用是分别指出一个字符串的开始和结束例子如下 ^The表示所有以The开始的字符串(ThereThe cat等) of despair$表示所以以of despair结尾的字符串 ^abc$表示开始和结尾都是abc的字符串——呵呵只有abc自己了 notice表示任何包含notice的字符串 象最后那个例子如果你不使用两个特殊字符你就在表示要查找的串在被查找串的任意部分——你并 不把它定位在某一个顶端 其它还有*+和?这三个符号表示一个或一序列字符重复出现的次数它们分别表示没有或 更多一次或更多还有没有或一次下面是几个例子 ab*表示一个字符串有一个a后面跟着零个或若干个b(a ab abbb……) ab+表示一个字符串有一个a后面跟着至少一个b或者更多 ab?表示一个字符串有一个a后面跟着零个或者一个b a?b+$表示在字符串的末尾有零个或一个a跟着一个或几个b 你也可以使用范围用大括号括起用以表示重复次数的范围 ab{}表示一个字符串有一个a跟着个b(abb) ab{}表示一个字符串有一个a跟着至少个b ab{}表示一个字符串有一个a跟着到个b 请注意你必须指定范围的下限(如{}而不是{})还有你可能注意到了*+和 ?相当于{}{}和{} 还有一个¦表示或操作 hi¦hello表示一个字符串里有hi或者hello (b¦cd)ef表示bef或cdef (a¦b)*c表示一串ab混合的字符串后面跟一个c 可以替代任何字符 a[]表示一个字符串有一个a后面跟着一个任意字符和一个数字 ^{}$表示有任意三个字符的字符串(长度为个字符) 方括号表示某些字符允许在一个字符串中的某一特定位置出现 [ab]表示一个字符串有一个a或b(相当于a¦b) [ad]表示一个字符串包含小写的a到d中的一个(相当于a¦b¦c¦d或者[abcd]) ^[azAZ]表示一个以字母开头的字符串 []%表示一个百分号前有一位的数字 [azAZ]$表示一个字符串以一个逗号后面跟着一个字母或数字结束 你也可以在方括号里用^表示不希望出现的字符^应在方括号里的第一位(如%[^azAZ]%表 示两个百分号中不应该出现字母) 为了逐字表达你必须在^$()¦*+?{\这些字符前加上转移字符\ 请注意在方括号中不需要转义字符 |