Как использовать регулярные выражения в Swift 3?

Я хотел следовать в этом уроке, чтобы узнать о NSRegularExpression на Swift, но он не был обновлен до Swift 3. Когда я открываю игровую площадку с примерами, которые они предоставляют, я получаю несколько ошибок, будучи одним из них вызов:

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

Я видел, что теперь этот инициализатор выдает исключение, поэтому я изменил вызов, но это .allZeros кажется, больше не существует. Я не нахожу никакого учебника или примера с эквивалентом этого в Swift 3, может кто-нибудь скажите мне, какой вариант теперь должен заменить такой ?

2 ответов


Я считаю .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.


можно использовать []:

let regex = try! NSRegularExpression(pattern: pattern, options: [])

, который также является значением по умолчанию, так что вы можете опустить этот аргумент:

let regex = try! NSRegularExpression(pattern: pattern)

самый простой способ узнать это-команда + нажмите перейти к определению методов:

public init(pattern: String, options: NSRegularExpression.Options = []) throws