Comment utiliser NSRegularExpression dans Swift 2.0 dans xcode 7

// L'erreur est ici let regex = NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: nil, error: nil)

// L'erreur est: ***

impossible de find un initialiseur de type nsregularexpression acceptant un argument de type (model: string, ption: nil, erreur: nil)

Il y a 2 changements en ce qui concerne la syntaxe dans Swift 2.0: (1) vous enveloppez l'appel dans un try ... catch block au lieu de fournir un paramètre d' error ; et (2) les options devraient être un Set , pas une numérique or des options individuelles.

Dans votre cas, le code devrait ressembler à ceci:

 do { let regex = try NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: []) } catch let error as NSError { print(error.localizedDescription) } 

Si vous savez que votre model réussit toujours, vous pouvez le raccourcir comme ceci:

 let regex = try! NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: []) 

Maintenant, si vous voulez définir des options pour votre model, vous pouvez le faire:

 let regex = try! NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: [.CaseInsensitive, .AnchorsMatchLines]) 

Dans Swift2. Vous devez utiliser try pour la gestion des erreurs.

 do { let regex = try NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: NSRegularExpressionOptions.CaseInsensitive) }catch { // Handling error } 

NSRegularExpression dans Swift 2.0 dans xcode 7

  extension Ssortingng { func isEmail() throws -> Bool { let regex = try NSRegularExpression(pattern: "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[AZ]{2,4}$", options: [.CaseInsensitive]) return regex.firstMatchInSsortingng(self, options: NSMatchingOptions(rawValue: 0), range: NSMakeRange(0, characters.count)) != nil } } 

Ensuite, lorsque vous voulez appeler la méthode, faites-le dans un bloc do et récupérez l'erreur qui en sort.

 do { try "[email protected]".isEmail() } catch { print(error) }