2016.11.23
语法
首先,特殊符号^和$,他们的作用分别指一个字符串的开始和结束
eg:
^one:表示所有以“one”开始的字符串 one cat,one dog……
类似于- (BOOL)hasPrefix:(NSString *)aString;
dog$:表示所有以dog结尾的字符串 it is a dog,……
类似于 -(BOOL)hasSuffix:(NSString *)aString;
^apple$:表示开始和结尾都是apple的字符串,是唯一的
banana:表示任何包含banana的字符串
类似于 -(BOOL)containsString:(NSString *)aString,搜索子字符串用的
*,+,?这三个符号,表示一个或n个字符重复出现的次数。分别表示"没有或更多" ([0,正无穷)) ;"一次或更多" ([1,正无穷)) ;"没有或一次" ([0,1]) 。
ab*:表示一个字符串有一个a后面跟着0个或多个b(a,ab,abb...)
ab+:表示一个字符串有一个a后面跟着至少一个b(ab,abb,abbb...)
ab?:表示一个字符串有一个a后面跟着0个或1个b(a,ab)
a?b+$:表示一个字符串结尾有-个或1个a跟着一个或多个b(b,ab,bb,abb,...)
用大括号{}表示一个重复的具体范围,如
ab{4}:表示一个字符串有一个a跟着4个b(abbbb)
ab{1,}:表示一个字符串有1个a跟着至少1个b(ab,abb,abbb,...)
ab{2,4}:表示一个字符串有1个a跟着2-4个b(abb,abbb,abbbb)
*可以用{0,}表示,+可以用{1,}表示,?可以用{0,1}表示
注意:可以没有下限,但不能没有上限,如ab{ ,5}是错误的写法
| 表示或操作
a|b:表示一个字符串里有a或b
(a|bcd)ef:表示aef或bcdef
(a|b)*c:表示0个或多个a或b的字符串后面有一个c,ac,abc,c,bc,abbc,aabc,aabbc,...
[]表示在括号内的众多字符中,选择1-n个括号内的符合语法的字符作为结果,如:
[ab]:表示一个字符串有一个a或a(相当于a|b)
[a-d]:表示一个字符串包含小写的a到d中的一个(相当于a|b|c|d或者[abcd])
^[a-zA-Z]:表示一个以字母开头的字符串
[0-9]a:表示a前有一位数字
[a-zA-Z0-9]$:表示一个字符串以一个字母或数字结束
.匹配除\r\n之外的任何单个字符,如:
a.[a-z]:表示一个字符串有一个a后面跟着任意字符和一个小写字母
^.{5}$:表示任意一个长度位5的字符串
网友评论