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