引言
对于大多数新手而言,学习正则表达式的语法,无疑很痛苦,吐槽这样的火星文怎么写?OK,这个链接是一个正则表达式文档,读者点进去,发现,Oh,God!这么长,完全没有兴趣来看了。有木有简单易懂的教程了呢?那么作者就一一道来。
语法
记住正则表达式的语法,其实只需要记住三样东西:
- Bracket(括号)
- caret(插入符号)
Dollars(美元符号)
在正则表达式里面有三种类型的符号:
- 方括号
[]
:表示需要匹配的字符 - 花括号
{}
:表示指定匹配字符的数量 - 圆括号
()
:表示用来分组
在正则表达式里面插入符号
^
:表示表达式的开始
在正则表达式里面美元符号$
:表示表达式的结束- 方括号
示例
示例一:检测用户输入的字符串是否为a-z之间并且长度为6.
NSString * regularExpression=@"^[a-z]{6}$";
示例二:检测用户输入的字符串是否为a-z或A-Z之间并且最大长度不超过18,最小长度不小于6
NSString * regularExpression=@"^[a-zA-Z]{6,18}$";
示例三:检测用户输入的字符串为数字和字母的组合,并且最大长度不超过18,最小长度不小于6
NSString * regularExpression=@"^[0-9a-zA-Z]{6,18}$";
示例四:检测用户输入的字符串第一位不能为数字,后面为数字和字母的组合,并且最大长度不超过18,最小长度不小于6
NSString * regularExpression=@"^[a-zA-Z][0-9a-zA-Z]{5,17}$";
示例五:匹配网址
1.检测是否存在 `www.`
NSString * regularExpression=@"^www.";
2.域名长度为1-15之间
NSString * regularExpression=@"[a-zA-z0-9]{1,15}";
3.以com或cn结束
NSString * regularExpression=@"(com|cn|org)$";
合成即为:
NSString * regularExpression=@"^www[.][a-zA-z0-9]{1,15}[.](com|cn|org)";
示例6:验证格式为YYYY.MM.DD的日期
1.允许用户输入的年份,这里设置为1970-2099
NSString * regularExpression=@"^1[9][0-7][0-9]|[2][0][0-9][0-9]";
2.月份,01-12
NSString * regularExpression=@"[1-9]|0[1-9]|1[0-2]";
3.天:1-9或01-09或10-19或20-29或30-31
NSString * regularExpression=@"[1-9]|0[1-9]|1[0-9]|2[0-9]|3[0-1]";
总的来说:
NSString * regularExpression=@"^(1[9][0-7][0-9]|[2][0][0-9][0-9])[.]([1-9]|0[1-9]|1[0-2])[.]([1-9]|0[1-9]|1[0-9]|2[0-9]|3[0-1])$";
从以上示例可以看出我们的正则表达式语法还是很简单的,然而细心的童鞋发现了,我这样的表达式跟一些教程上表达是不一样,比如一些教程的表达式有 \d
\w
*
+
?
等一些玩意儿,那么这些玩意儿到底代表什么意思呢?
没错,这是正则表达式的快捷命令,使用这些命名,我们可以简化我们的正则表达式,如上篇文章中就要这样的表达式 (<img.*?/>)
。想要知道这些表达式的含义,且听下回分解。