Swift学习

Swift3 正则表达式的应用

2017-03-01  本文已影响1992人  说不出情绪

在Swift的编程中我们用到正则表达式主要在两方面:
1.判断一些字符是否符合所需要求;
2.用于检索文本中所需字段。

匹配对应类型的正则表达式网上要多少有多少,我就不一一列举了,想更深层次了解的点这里,本文只说明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 ? "正确的邮箱地址" : "错误的邮箱地址")

输出结果:

正确的邮箱地址

二、用于检索文本中所需字段

创建被检索文本文字:

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>标签对,利用NSRegularExpression类去实现。

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)
 }

输出结果:

Location:30, length:46

获取要目标在为本中的位置后再进行其他处理就方便多了。

上一篇下一篇

猜你喜欢

热点阅读