NSRegularExpression 错误,我不能使用正则表达式
NSRegularExpression error, I can't use Regular Expressions
我正在创建一个正则表达式,但无法解决这个问题
class Regex {
let internalExpression: NSRegularExpression
let pattern: String
init(_ pattern: String) {
self.pattern = pattern
var error: NSError?
self.internalExpression = NSRegularExpression(pattern: pattern, options: .CaseInsensitive, error: &error)
}
func test(input: String) -> Bool {
let matches = self.internalExpression.matchesInString(input, options: nil, range:NSMakeRange(0, countElements(input)))
return matches.count > 0
}
}
这是我遇到的错误:
"Cannot invoke initializer for type 'NSRegularExpression' with an argument list of type '(pattern: String, options: _, error: inout NSError?)'"
和
"Use of unresolved identifier 'countElements'"
我只想用这个:
if usuarioView.text! =~ "/^[a-zA-Z0-9_]{3,30}$/"
您的代码存在一些问题。您似乎正在从早期版本的 Swift 迁移到 Swift 2.x.
NSRegularExpression
初始化程序已更改为抛出错误,而不是传入 ErrorPointer
:
do {
self.internalExpression = try NSRegularExpression(pattern: pattern, options: .CaseInsensitive)
} catch {
print(error)
}
要将 nil
指定为 OptionType
值,请使用 []
。要获取字符串的长度,请使用 input.characters.count
,因为 countElements
已从 Swift:
中删除
let matches = self.internalExpression.matchesInString(input, options: [], range:NSMakeRange(0, input.characters.count))
我正在创建一个正则表达式,但无法解决这个问题
class Regex {
let internalExpression: NSRegularExpression
let pattern: String
init(_ pattern: String) {
self.pattern = pattern
var error: NSError?
self.internalExpression = NSRegularExpression(pattern: pattern, options: .CaseInsensitive, error: &error)
}
func test(input: String) -> Bool {
let matches = self.internalExpression.matchesInString(input, options: nil, range:NSMakeRange(0, countElements(input)))
return matches.count > 0
}
}
这是我遇到的错误:
"Cannot invoke initializer for type 'NSRegularExpression' with an argument list of type '(pattern: String, options: _, error: inout NSError?)'"
和
"Use of unresolved identifier 'countElements'"
我只想用这个:
if usuarioView.text! =~ "/^[a-zA-Z0-9_]{3,30}$/"
您的代码存在一些问题。您似乎正在从早期版本的 Swift 迁移到 Swift 2.x.
NSRegularExpression
初始化程序已更改为抛出错误,而不是传入 ErrorPointer
:
do {
self.internalExpression = try NSRegularExpression(pattern: pattern, options: .CaseInsensitive)
} catch {
print(error)
}
要将 nil
指定为 OptionType
值,请使用 []
。要获取字符串的长度,请使用 input.characters.count
,因为 countElements
已从 Swift:
let matches = self.internalExpression.matchesInString(input, options: [], range:NSMakeRange(0, input.characters.count))