swift項目第九天:正則表達式的學習

import UIKit

/*
練習1:匹配abc

練習2:包含一個a~z,後面必須是0~9 -->[a-z][0-9]或者[a-z]\d
    * [a-z] : a~z
    * [0-9]/\d : 0~9:[0-9]/\d :表示[0-9]或\d,\d表示數字的意思

練習3:必須第一個是字母,第二個是數字 -->^[a-z][0-9]$
    * ^[a-z] : 表示首字母必須是a~z
    * \d{2,10} : 數字有2到10
    * [a-z]$ : 表示必須以a-z的字母結尾

練習4:必須第一個是字母,字母后面跟上4~9個數字

練習5:不能是數字0-9

    * [^0-9] : 不能是0~9



練習6:QQ匹配:^[1-9]\d{4,11}$
都是數字
5~12位
而且第一位不能是0


練習7:手機號碼匹配^1[3578]\d{9}$
1.以13/15/17/18
2.長度是11
*/

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let str = "13324132423"
        
        // 1.建立正則表達式規則
        let pattern = "^1[3578]\\d{9}$"// \\d{9},其中\\表示轉義, \\d{9}表示,後面有9位數字
        
        // 2.建立正則表達式對象(拋出異常throw用:try try? try!)
        guard let regex = try? NSRegularExpression(pattern: pattern, options: []) else {
            return
        }
        
        // 3.匹配字符串中內容:swift中的字符串的長度用:str.characters.count
        let results = regex.matches(in: str, options: [], range: NSRange(location: 0, length: str.characters.count))
        
        // 4.遍歷數組,獲取結果:字符串的截取操做通常都是將swift的字符串轉爲oc的字符串來處理
        for result in results {
            print((str as NSString).substring(with: result.range))
            print(result.range)
        }
    }

}
import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let statusText = "@coderwhy:【動物尖叫合輯】#肥豬流#貓頭鷹這麼尖叫[偷笑]、@M了個J: 老鼠這麼尖叫、兔子這麼尖叫[吃驚]、@花滿樓: 莫名奇#小籠包#妙的笑到最後[好愛哦]!~ http://t.cn/zYBuKZ8/"
        
        /*
         
         1: 匹配出來@coderwhy:let pattern = "@.*?:" ,其中 .* 用來表示表示任意字符,加上 ?來表示,只要遇到:就當即中止匹配,沒有?的話,它會一直匹配到最後一個:
         
         2: 匹配表情: let pattern = "\\[.*?\\]" ,由於[],有特殊的含義,因此要進行轉義,轉義就用\轉義,\在siwft字符串中也有特殊含義,因此就再用\來表示,轉義就用\,若是轉義後,還有特殊含義,就再用\來表示
    
         **/
        
        
        
        // 1.建立匹配規則
        // let pattern = "@.*?:" // 匹配出來@coderwhy:
        // let pattern = "#.*?#" // 匹配話題
        // let pattern = "\\[.*?\\]" // 匹配表情
        let pattern = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?" // URL網址
        
        // 2.建立正則表達式對象
        guard let regex = try? NSRegularExpression(pattern: pattern, options: []) else {
            return
        }
        
        // 3.開始匹配
        let results = regex.matchesInString(statusText, options: [], range: NSRange(location: 0, length: statusText.characters.count))
        
        // 4.獲取結果
        for result in results {
            print((statusText as NSString).substringWithRange(result.range))
        }
    }
}
相關文章
相關標籤/搜索