对正则表达式的简单学习

来源:互联网 发布:java实现深度优先遍历 编辑:程序博客网 时间:2024/05/22 06:36

无事来研究一下正则表达式,参考链接 http://blog.jobbole.com/96708/.
正则表达式测试:http://tool.oschina.net/regex/#
一: \b 匹配单词的开始和结束 如\bz\w*\b 可以筛选出先是某个单词开始处(\b),然后是字母 w,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b).
二: \d 匹配一位数字 \d{2} 重复匹配2次 [0-9] 相同 \d{5-12} 匹配次数不能小于5次,不能大于12次
三: . (点字符) 匹配除了换行符之外的任意字符
四: ^开始,$结束. *重复零次或更多次,?重复零次或一次
五: \w 匹配字母或数字或下划线或汉字
六. {n,m} 重复 n-m 次,{n} 重复n 次,{n,}重复n次或更多次
七.字符类列举,[aeiou] 元音, [0-9]等同于 \d
八. | :分支条件,或

几个例子 ^[a-zA-Z0-9]$(判断只包含字母和数字),可以看到运用了 字符串的例举[a-zA-Z0-9], 号表示重复零次或更多次.
对于OC,输入 \b 当做匹配的字符串时有时会报 unknown escape sequence的警告导致判断错误.应该把 \b 改为 \ \b

-(BOOL)validateStr:(NSString *)Str{    NSString * judgeStr = @"\b\w{6}\b";    NSPredicate * pre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",judgeStr];    return [pre evaluateWithObject:Str];}

中判断6位数字时判断错误.改为

@"\\b\\w{6}\\b

正确.
总结:学习之后可以看懂简单的正则表达式,之前看都像天书一样.不再一头雾水.后面讲的有些复杂没有看,等待继续学习.

1 0
原创粉丝点击