标签:
1.正则表达式的作用:从复杂的字符串中摘取需要的内容
2.表达形式 .*?
. 匹配任意字符,换行除外
* 匹配任意多个字符
? 尽量少的匹配
3.书写步骤:
1. 找特征字符
2. 定义匹配方案
3. 设置匹配选项 DotMatchesLineSeparators,让 `.` 能够匹配换行符号,通常用在网络爬虫
4. firstMatchInString 找第一个符合要求的匹配项
5.查找结果:
var numberOfRanges: Int { get } 找到的范围数量
func rangeAtIndex(idx: Int) -> NSRange 按照 index 获取 range
5. pattern () 表示要匹配的内容
提示:其他常用的正则,可以直接百度,非常丰富!
6.实例:
let string = "hahah<a href=\"http://weibo.com/\" rel=\"nofollow\">微博 weibo.com</a>xixi"
let pattern = "<a href=\"(.*?)\".*?>(.*?)</a>"
let regex = try! NSRegularExpression(pattern: pattern, options: NSRegularExpressionOptions.DotMatchesLineSeparators)
let result = regex.firstMatchInString(string, options: NSMatchingOptions(rawValue: 0), range: NSMakeRange(0, string.characters.count))
print(result?.numberOfRanges)
let r1 = result!.rangeAtIndex(1)
let r2 = result!.rangeAtIndex(2)
print((string as NSString).substringWithRange(r1))
print((string as NSString).substringWithRange(r2))
把此方法做一个扩展,以备复用
标签:
原文地址:http://www.cnblogs.com/jiayongqiang/p/4909042.html