Swift正则expression式格式?

我熟悉做pcre正则expression式,但是他们似乎并不快速工作。

^([1-9]\d{0,2}(\,\d{3})*|([1-9]\d*))(\.\d{2})?$ 

validation数字,如1,000,000.00

但是,把这个放在我的swift函数中,会导致一个错误。

  extension String { func isValidNumber() -> Bool { let regex = NSRegularExpression(pattern: "^([1-9]\d{0,2}(\,\d{3})*|([1-9]\d*))(\.\d{2})?$", options: .CaseInsensitive, error: nil) return regex?.firstMatchInString(self, options: nil, range: NSMakeRange(0, countElements(self))) != nil } } 

“无效的转义序列无效”

这当然是因为pcre使用了“\”字符,这个字符很快被解释为逃避(我相信?)

所以,因为我不能只使用我习惯的正则expression式。 我如何将它们翻译成与Swift代码兼容?

在双引号内,单个反斜杠将作为转义序列。 您需要再次跳过所有反斜杠,才能将其视为正则expression式反斜杠字符。

 "^([1-9]\\d{0,2}(,\\d{3})*|([1-9]\\d*))(\\.\\d{2})?$"