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

6

我想学习在Swift中使用NSRegularExpression,于是我想跟随这篇教程。但是该教程没有更新到Swift 3。当我打开他们提供的示例playground时,会出现多个错误,其中一个错误是调用:

let regex = NSRegularExpression(pattern: pattern, options: .allZeros, error: nil)

我注意到现在initializer会抛出异常,所以我改变了调用方式,但是.allZeros似乎不再存在了。我没有找到任何关于Swift 3中等价的教程或示例,有人能告诉我现在应该使用什么选项来替换.allZeros吗?


这个链接可能会对你有所帮助:https://dev59.com/aF4c5IYBdhLWcg3weaT8 - LF00
2个回答

7
我认为.allZeros应该在没有其他选项适用时使用。
因此,在Swift 3中,您可以传递一个空的选项列表或者省略options参数,因为它默认没有选项:
do {
    let regex = try NSRegularExpression(pattern: pattern, options: [])
} catch {
}

或者

do {
    let regex = try NSRegularExpression(pattern: pattern)
} catch {
}

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


5
您可以使用[]
let regex = try! NSRegularExpression(pattern: pattern, options: [])

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

let regex = try! NSRegularExpression(pattern: pattern)

最简单的方法是通过command+点击跳转到方法的定义:
public init(pattern: String, options: NSRegularExpression.Options = []) throws

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接