Swift 正規表示式匹配NSRegularExpression

weixin_34075268發表於2017-08-03
import UIKit

/*
 []             表示一個字元 [12345] 表示這一個位置上可以是1,2,3,4,5  一位
 {}             表示一個範圍 {1,9}   表示1到9這麼一段
 [a-z]          表示a~z
 [0-9]          表示0~9 或者 \d ,為了防止轉義 \\d
 ^[a-z]         表示首字母必須是a~z
 \d{2,10}       表示數字有2到10個
 [a-z]$         表示必須以a-z的字母結尾
 [^0-9]         表示不能是0-9
 .              表示任意字元/數字/符號
 *              表示個數不定
 ?              表示就近匹配
 
 
 */

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let str = "a311dadsddabc"
        // 1. 建立正規表示式規則
        let pattern = "^[a-z].*[a-z]$"
        
        // 2. 建立正規表示式物件
        guard let regex = try? NSRegularExpression(pattern: pattern, options: []) else {
            return
        }
        
        // 3. 匹配字串中內容
       let results =  regex.matches(in: str, options: [], range: NSRange(location: 0, length: str.characters.count))
        
        // 4.遍歷陣列,獲取結果[NSTextCheckingResult]
        
        for result in results {
            print(result.range)
            let string = (str as NSString).substring(with: result.range)
            print(string)
        }
    }

}

相關文章