在一开始,Swift 里并没有提供正则表达式的支持,所以我们只能自己来封装,比如说写一个结构体,像这样:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
struct MyRegex { let regex: NSRegularExpression? init(_ pattern: String) { regex = try? NSRegularExpression(pattern: pattern, options: .CaseInsensitive) } func match(input: String) -> Bool { if let matches = regex?.matchesInString(input, options: [], range: NSMakeRange(0, (input as NSString).length)) { return matches.count > 0 } else { return false } } } |
其实现在 Swift 已经有了对正则表达式的支持,我们只需要这样:
1 |
let result = name.rangeOfString("^[a-z]", options: .RegularExpressionSearch) |
直接就能获取正则捕获的内容了。
获取到的是一个 Range ,配合字符串的对应方法,自然可以拿到捕获的内容。如果没有,则返回空,配合 if 进行可选项值绑定,方便快捷!
本文由 落格博客 原创撰写:落格博客 » Swift 中的正则表达式
转载请保留出处和原文链接:https://www.logcg.com/archives/1948.html