Swift:组合两个或多个正则表达式

Swift: Combine two or more regular expressions

我正在使用两个正则表达式:

    var myNumbers  = numbers.text?.stringByReplacingOccurrencesOfString("[^0-9]", withString: "", options: NSStringCompareOptions.RegularExpressionSearch, range:nil)


myNumbers  = myNumbers?.stringByReplacingOccurrencesOfString("^\s*$", withString: "", options: NSStringCompareOptions.RegularExpressionSearch, range:nil)

我正在删除非数字字符和空格,但有一种方法可以组合正则表达式吗?

 var myNumbers  = numbers.text?.stringByReplacingOccurrencesOfString("[\s\D]", withString: "", options: NSStringCompareOptions.RegularExpressionSearch, range:nil)

的基础上,\s 标记捕获所有白色 space(制表符、space、换行符等),并且 \D 捕获所有数字。

let regex = "[\s\D]"

var myNumbers  = numbers.text?.stringByReplacingOccurrencesOfString(regex,
                                                         withString: "",
                                                            options: .RegularExpressionSearch,
                                                              range: nil)

Swift有自动枚举推断,不用写NSStringCompareOptions.RegularExpressionSearch。您可以只写 .RegularExpressionSearch,编译器将从函数的签名中推断出 NSStringCompareOptions