正则表达式
参考网址:
http://deerchao.net/tutorials/regex/regex.htm
匹配字符:
[]-----表示匹配一个字符
^-----匹配字符串的开始,如果不在[]里面表示以什么开头, 在[^]表示不是那些字符
$-----匹配字符串的结束
.-----点表示匹配除换行符之外的任意字符
匹配字符取反:
\W-----匹配非(字母 或 数字 或 下划线 或 汉字)
\w-----匹配(字母 或 数字 或 下划线 或 汉字)
\D-----匹配非(数字字符)
\d-----匹配(数字字符)
\S-----匹配非(空白字符)
\s-----匹配(空白字符)
匹配次数:
{n}-----指定出现的次数
{m,n}-----最少出现m次,最多出现n次
{m,}-----最少出现m次,最多无限次
?-----重复0次或1次
+-----重复1次或多次
*-----重复0次或多次
正则表达式示例:
abc-----匹配abc
[a-z][0-9]-----包含一个小写字母,后面必须跟一个0-9的数字
[a-zA-Z][0-9]或者[a-z,A-Z][0-9]-----逗号可写可不写,包含一个字母,后面必须跟一个0-9的数字
[a-zA-Z][0-9]{4,9}-----包含一个字母,后面跟上4-9个数字(数字范围0-9)
^[1-9][0-9]{4,11}$-----QQ号码匹配,以1-9的数字开头,后面跟0-9(4-11个)的数字,一共5-12个数字,^表示开始匹配,$表示结束匹配
^1[3,5,7,8]\\d{9}$或者^1[3,5,7,8][0-9]{9}$-----手机号码匹配,以13/15/17/18开头,长度11的数字
^[^0-9]-----不能是数字开头
1 class ViewController: UIViewController { 2 3 override func viewDidLoad() { 4 super.viewDidLoad() 5 regularExpressionDemo() 6 } 7 8 private func regularExpressionDemo() -> (){ 9 // 源字符串 10 let str = "中国中国abc23872367中国中国" 11 12 // 根据正则表达式进行匹配 13 // pattern:正则表达式 14 // options:匹配选项,如忽略大小写等,传[]即可 15 // range:匹配的范围 16 let matchResult = try! NSRegularExpression(pattern: "abc", options: []).matches(in: str, options: [], range: NSMakeRange(0, (str as NSString).length)) 17 18 // 遍历匹配结果 19 for match in matchResult{ 20 // 匹配的范围 21 let range = match.range 22 23 // 根据匹配的范围截取出符合条件的字符串 24 let subText = (str as NSString).substring(with: range) 25 26 print("匹配范围:\(NSStringFromRange(range));截取的字符串:\(subText)") 27 } 28 } 29 }

浙公网安备 33010602011771号