Swift3 正則表達(dá)式的應(yīng)用

在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\\-\\.,@?^=%&amp;:/~\\+#]*[\\w\\-\\@?^=%&amp;/~\\+#])?<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)行其他處理就方便多了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容