在Swift的編程中我們用到正則表達(dá)式主要在兩方面:
1.判斷一些字符是否符合所需要求;
2.用于檢索文本中所需字段。
匹配對(duì)應(yīng)類(lèi)型的正則表達(dá)式網(wǎng)上要多少有多少,我就不一一列舉了,想更深層次了解的點(diǎn)這里,本文只說(shuō)明Swift3中如何使用。
一、判斷一些字符是否符合所需要求
例如匹配有效郵箱:
let email = "jay734138477@qq.com"
let regex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"
let predicate = NSPredicate(format: "SELF MATCHES %@", regex)
let isValid = predicate.evaluate(with: email)
print(isValid ? "正確的郵箱地址" : "錯(cuò)誤的郵箱地址")
輸出結(jié)果:
正確的郵箱地址
二、用于檢索文本中所需字段
創(chuàng)建被檢索文本文字:
let searchText = " Do any additional 12 setup <image>http://regxlib.com/Default.aspx<image/> after 30 loading the view,102 typically 0 from a nib."
我們要檢索上面文字中的<image>標(biāo)簽對(duì),利用NSRegularExpression類(lèi)去實(shí)現(xiàn)。
do {
let regex = try NSRegularExpression(pattern: "<image>(http|ftp|https):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~\\+#])?<image/>", options: .caseInsensitive)
let result = regex.matches(in: searchText, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, searchText.characters.count))
if result.count > 0 {
for checkingRes in result {
print("Location:\(checkingRes.range.location), length:\(checkingRes.range.length)")
}
}else{
print("未查找到")
}
} catch {
print(error)
}
輸出結(jié)果:
Location:30, length:46
獲取要目標(biāo)在為本中的位置后再進(jìn)行其他處理就方便多了。