Swift 中的正则表达式给出不同的结果
Regex in Swift gives different result
我在 Swift,
中使用这个正则表达式
let regex = try! NSRegularExpression(pattern: "^[a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+(?:[-' ][a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+)*$")
let range = NSRange(location: 0, length: newValue.utf16.count)
if regex.firstMatch(in: value, options: [], range: range) == nil {
print("Not passed")
} {
print("Passed")
}
但它给出的结果与网站 https://regex101.com/r/EXWsK1/2 不同,
我在这里做错了什么?
在我的 swift 代码中,它应该像网站上的示例一样接受 Le'brahm、O'Niel 等撇号字符,但它不接受。
您需要将单引号 ‘’
添加到模式中:
pattern: "^[a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+(?:[-'‘’ ][a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+)*$"
直引号默认替换为弯引号。
我在 Swift,
中使用这个正则表达式 let regex = try! NSRegularExpression(pattern: "^[a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+(?:[-' ][a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+)*$")
let range = NSRange(location: 0, length: newValue.utf16.count)
if regex.firstMatch(in: value, options: [], range: range) == nil {
print("Not passed")
} {
print("Passed")
}
但它给出的结果与网站 https://regex101.com/r/EXWsK1/2 不同, 我在这里做错了什么?
在我的 swift 代码中,它应该像网站上的示例一样接受 Le'brahm、O'Niel 等撇号字符,但它不接受。
您需要将单引号 ‘’
添加到模式中:
pattern: "^[a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+(?:[-'‘’ ][a-zA-Zåçêëèïîìæôöòûùÿáíóúñ]+)*$"
直引号默认替换为弯引号。