正则表达式学习
语法
- ^ 和 $ 表示字符串的结束
1、 例子:^one 表示one开头的字符串 “one .....”
2、 例子: “a dog$” 表示以“......a dog”结束的字符
^ 和 $ 类比于iOS 的 hasPrefix 和 hasSuffix
3、 “banana”:在正则中表示任何包含“banana”字符的字符
类似于iOS 的containsString函数
4、 “*”,“+”,"?" 三个字符
“ * ”表示出现的次数>=0次
“ + ”表示出现的次数 >= 1次
" ? " 表示出现的次数 是 0次 或一次
例子:
"ab*"表示 ("","ab" "abb"等等)
ab+ 表示(ab abb abbb等等)
ab? 表示(a,ab)
a?b+$ 表示结尾处跟着0个a或者1个a或者1个或者几个b
5、{} 表示重复的具体范围
例子:
ab{4} 表示a后面跟着四个b abbbb
ab{1,} 表示a后面至少一个b
ab{3,4} 表示字符串字符串哦后面跟着3个或者4个b
“*” 可以表示成{0,} “+” 表示成{1,} “?”表示成{0,1}
注意{} 可以没有下限{1,}但是不能没有上限
6、 ‘|’表示或操作
“(a|b)*c” 表示a或b组成的字符串(a,b,ab都算)字符串后面跟着一个c
7、[ ]表示在括号内的
[ab]表示有一个a或者b
[a-d] 字符串中包含小写的a到d的中的一个
^[a-zA-Z]表示一个以字母开头的字符串
[0-9]a表示a前有一位数字
[a-zA-Z0-9]$以一个字母或者数字结束
8、. 匹配除‘\r \n’之外的任何单个字符
例子:
a.[a-z] 表示a后面跟着任意一个字符和一个小写字母
“^.{5}$”:表示任意1个长度为5的字符串;
9、“\num” 其中num是一个正整数。表示”\num”之前的字符出现相同的个数
例子:
“(.)\1″:表示两个连续的相同字符 -------这个主意\需要转义 (.)\1
“10{1,2}” : 表示数字1后面跟着1或者2个0 (“10″,”100″) 这个我转义之后不正确 不转义报警告。。。求指点
0{3,} 表示数字为至少3个连续的0 这个也是转义不行 可能“\num”这个形式是不能转义的
10、[^ ] 在方括号里用’'表示不希望出现的字符,’'应在方括号里的第一位
例子
“@[^a-zA-Z]4@”表示两个”@”后跟着一位不是字母的位 然后跟着4@的字符
11、\d 匹配一个数字字符 等价[0-9]需要转义\d
12、\D 匹配一个非数字字符 等价于[^0-9] 需要转义\D
13、 \w 匹配一个包括下划线的任何单词字符
--注意不--等价于[A-Za-z0-9_] 因为还有汉字什么的各种吧(汉字也算字符) 这个实验出来的
14、\W 匹配一个非单词字符 除了@什么的
13 14 用的测试用例是 您可以于aaa31000年12月20日后再次申请借款@4@ 这个字符串
我的需求
看了这么多就是为了写一个需求 从字符串中提取日期时间
例如 : 您可以于2017年12月20日后再次申请借款
写我写了个简单的正则:[0-9]{4}[年][0-9]{1,2}[月][0-9]{1,2}[日]
写的时候就是拆分 分段写完在组合 比如 年前面 月前面 日前面 分别写出来 在组合
暂时先学习到这里 需求完成 后续有机会再研究
查看资料
精确日期的校对 :精确日期的校对
iOS 中正则学习:正则表达式在iOS中的运用
网友评论