Open
Description
1. ^和$
两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下:
表达式 | 代表的意思 |
---|---|
^The | 表示所有以"The"开始的字符串("There","The cat"等) |
of despair$ | 表示所以以"of despair"结尾的字符串; |
^abc$ | 表示开始和结尾都是"abc"的字符串——呵呵,只有"abc"自己了; |
notice | 表示任何包含"notice"的字符串。 |
2. '*','+'和'?'
它们表示一个或一序列字符重复出现的次数,分别表示没有或更多,一次或更多,没有或一次。
表达式 | 代表的意思 |
---|---|
ab* | 表示一个字符串有一个a后面跟着零个或若干个b。("a", "ab", "abbb",……); |
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。 |
请注意:在写这种表达式的时候,你必须指定范围下限,如{0,2}
而不是{,2}
。还有,你可能注意到了,'*','+'和'?'
相当于"{0,}","{1,}"和"{0,1}"
。
3. |(或操作符)
表达式 | 代表的意思 |
---|---|
hi|hello | 表示一个字符串里有hi或者hello |
(b|cd)ef | 表示bef或者cdef |
(a|b)*c | 表示一串ab混合的字符串后面跟一个c |
4. 点号(.)可以代替任何字符
表达式 | 代表的意思 |
---|---|
a.[0-9] | 表示一个字符串有一个a后面跟着一个任意字符和一个数字 |
^.{3} | 表示有任意三个字符的字符串(长度为3个字符) |
5. 方括号表示某些字符允许在一个字符串中的某一特定位置出现
表达式 | 代表的意思 |
---|---|
[ab] | 表示一个字符串有一个a或b,相当于a|b |
[a-d] | 表示一个字符串包含小写的a到d中的一个,相当于a|b|c|d或者[abcd] |
^[a-zA-Z] | 表示一个以字母开头的字符串 |
[0-9]% | 表示一个百分号前有一位的数字 |
,[a-zA-Z0-9]$ | 表示一个字符串以一个逗号后面跟着一个字母或数字结束 |
也可以在方括号中使用^表示不希望出现的字符,^应在方括号里的第一位。如:%[^a-zA-Z]%
表示2个百分号中间不应该出现字母。在方括号中不需要转义字符。
6. 其他量词:重复出现
符号 | 次数下限 | 次数上限 | 含义 |
---|---|---|---|
+ | 1 | 无 | 可以出现无数次,但至少必须出现一次(至少一次) |
* | 无 | 无 | 可以出现无数次,也可以不出现(任意次数均可) |
? | 无 | 1 | 可以不出现,也可以只出现一次(单词可选) |
注意:*
,+
,?
作用的对象是它们之前紧邻的子表达式。