Swift正则表达式格式?

我熟悉做pcre正则表达式,但是它们似乎并没有很快起作用。

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

验证数字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使用“ \”字符,该字符被迅速解释为转义符(我相信吗?)

因此,由于我不能只使用我习惯的正则表达式。如何将它们翻译为与Swift代码兼容?

回答:

在双引号中,单个反斜杠将被读取为转义序列。您需要再次转义所有反斜杠,才能将其视为正则表达式反斜杠字符。

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

以上是 Swift正则表达式格式? 的全部内容, 来源链接: utcz.com/qa/403927.html

回到顶部