swift 使用正则表达式

通常用一个常用的正则类

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) -> Array<String>{
        let matches = self.internalExpression.matchesInString(input, options: nil, range:NSMakeRange(0, countElements(input))) as Array<NSTextCheckingResult>
        if (matches.count>0) {
            var values:Array<String> = []
            for result in matches {
                for i in 0...(result.numberOfRanges-1) {
                    let range = result.rangeAtIndex(i)
                    var nsinput = input as NSString
                    values += [nsinput.substringWithRange(NSRange(location: range.location,length: range.length))]
                }
            }
            //println(values)
            return values
        }else{
            return []
        }
    }
}

正则表达是 \d 在双引号中 要写成 \\d ,如 取5个数字 "\\d{5}" .

例如取3-30个字符(包含数字 或者字母 或 - )可以写成

var matchResult = Regex("[\\d\\w-]{2,30}").test(domainInput.text)
        if !matchResult.isEmpty {
    println(matchResult[0])
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。