正则表达式快捷命令
上篇文章中讲到,我们正则表达式中存在快捷命令可以简化我们的表达式。OK,接下来我们来看下这些快捷命令吧。
命令 | 解释 |
---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配字母或数字或下划线或汉字 |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\b | 匹配单词的开始或结束 |
* | 重复零次或更多次 |
+ | 重复一次或更多次 |
? | 重复零次或一次 |
{n} | 重复n次 |
{n,} | 重复n次或更多次 |
{n,m} | 重复n到m次 |
比如说匹配用书输入的是否是一个11位数字,我们正则表达式可以这样写 ^\\d{11}$
,其中 \
转义字符。接下来我们来看一些示例来帮助大家理解:
示例一:
判断用户输入的是否为手机号码
NSString *regex = @"^[1][3578]+\\d{9}$";
示例二:
判断用户输入的是否为QQ号码
NSString *regex = @"^[1-9]{4,}$"
示例三:
判断用户输入的是否为邮箱
NSString *regex = @"^[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$";
note:邮箱里面不能出现中文,所以regex不能为 ^[\\w._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$
示例四
判断用户输入的是否为四个中文
NSString *regex = @"^[\u4e00-\u9fa5]{4}$"
note:中文是Unicode编码是 \u4e00-\u9fa5 之间
示例五
过滤html标签
NSString *regex = @"^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)";
对于上面的这个表达式 [^<]+
有的同学不明白是什么意思,事实上这个是取反的意思,即匹配非方括号中所有字符至少一次。在正则表达式中,有很多取反的命令
命令 | 解释 |
---|---|
\W | 匹配任意不是字母,数字,下划线,汉字的字符 |
\S | 匹配任意不是空白符的字符 |
\D | 匹配任意非数字的字符 |
\B | 匹配不是单词开头或结束的位置 |
[^x] | 匹配除了x以外的任意字符 |
结束语
OK,其实正则表达式有很多很强大的功能,有兴趣的同学可以深入学习。个人认为,大家只要掌握了这些基本语法是可以对付咱们做iOS开发的项目需求的。最后,希望大家可以关注我的优酷空间(里面有教学视频哦)。顺便也可以关注一下我的新浪微博,ID为 枫一般低调
。