2015-02-24 70 views
0

我试图创建以下NSRegularExpression(我试图找到所有逗号,,左括号(,右括号)和反斜线\):无法创建,因为“无法创建(元类型)逃脱NSRegularExpression”的NSRegularExpression

var error: NSError? 
NSRegularExpression(pattern: "[,\\(\\)\\]", options: nil, error: &error) 

但它与下面的错误返回.None

Couldn't create (Metatype) escape NSRegularExpression 

而下面userInfo

NSInvalidValue: "[,\(\)\]" 

这是什么意思?

回答

0

字符类中的反斜杠文字未正确转义。它在字符串文字中使用了两个反斜杠,而不是四个。

var error: NSError? 
NSRegularExpression(pattern: "[,\\(\\)\\]", options: nil, error: &error) 

应该是:

var error: NSError? 
NSRegularExpression(pattern: "[,\\(\\)\\\\]", options: nil, error: &error) 

我觉得Couldn't create (Metatype) escape错误指的是不完全逃脱反斜线导致逃逸最后方括号,这使得字符类定义无效。