如何在xcode 7中使用Swift 2.0中的NSRegularExpression

//错误在这里let regex = NSRegularExpression(pattern: "(<img.*?src=\")(.*?)(\".*?>)", options: nil, error: nil)

//错误是:***

找不到types为nsregularexpression的初始值设定项(pattern:string,ption:nil,error:nil)

在Swift 2.0中,语法有两个变化:(1)将调用包装在try ... catch块中,而不是提供error参数; (2) options应该是一个Set ,而不是数字or个别的选项。

在你的情况下,代码应该是这样的:

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

如果你知道你的模式总是成功的话,你可以像这样缩短它:

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

现在如果你想为你的模式设置选项,你可以这样做:

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

在Swift2中。 你需要使用try来处理错误。

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

Swift 2.0中的NSRegularExpression在xcode 7中

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

然后当你想调用这个方法的时候,从一个do块里面执行,并且捕获出来的错误。

 do { try "person@email.com".isEmail() } catch { print(error) }