如何在Swift 3中使用正则表达式?

App*_*Dev 6 regex ios nsregularexpression swift3

我想跟随本教程学习NSRegularExpressionSwift,但它并没有被更新Swift 3.当我用他们提供的示例打开游乐场时,我得到了几个错误,其中一个是调用:

let regex = NSRegularExpression(pattern: pattern, options: .allZeros, error: nil)
Run Code Online (Sandbox Code Playgroud)

我已经看到,现在初始化程序抛出一个异常,所以我改变了调用,但这.allZeros似乎不再存在.我没有找到任何相同的教程或示例Swift 3,有人可以告诉我现在应该用什么选项替换这样的.allZeros选项?

rma*_*ddy 7

我相信.allZeros在没有其他选项适用时会被使用.

因此,使用Swift 3,您可以传递一个空的选项列表或省略options参数,因为它默认为无选项:

do {
    let regex = try NSRegularExpression(pattern: pattern, options: [])
} catch {
}
Run Code Online (Sandbox Code Playgroud)

要么

do {
    let regex = try NSRegularExpression(pattern: pattern)
} catch {
}
Run Code Online (Sandbox Code Playgroud)

请注意,在Swift 3中,您不再使用该error参数.现在呢throws.


sha*_*ght 5

你可以使用[]:

let regex = try! NSRegularExpression(pattern: pattern, options: [])
Run Code Online (Sandbox Code Playgroud)

这也是默认值,因此您可以省略此参数:

let regex = try! NSRegularExpression(pattern: pattern)
Run Code Online (Sandbox Code Playgroud)

找到这个的最简单方法是命令+单击跳转到方法定义:

public init(pattern: String, options: NSRegularExpression.Options = []) throws
Run Code Online (Sandbox Code Playgroud)