我不能在正则表达式中包含 ' 符号
I can't include ' symbol to Regular Expressions
我尝试在正则表达式中包含 ' 符号
我用这个功能
func matches(for regex: String, in text: String) -> [String] {
do {
let regex = try NSRegularExpression(pattern: regex)
let results = regex.matches(in: text,
range: NSRange(text.startIndex..., in: text))
return results.map {
text.substring(with: Range([=10=].range, in: text)!)
}
} catch let error {
print("invalid regex: \(error.localizedDescription)")
return []
}
}
和这个正则表达式
let matched = matches(for: "^[‘]|[0-9]|[a-zA-Z]+$", in: string)
当我搜索时,我可以找到数字和英文字母
但不是 ' 符号
我猜你真正想要的是这个:
"['0-9a-zA-Z]+"
请注意,我删除了 ^
(文本开始)和 $
(文本结束)字符,因为这样您的整个文本就必须匹配。
我已经合并了这些组,否则您将无法匹配整个单词的文本。你会得到单独的撇号,然后是单词。
我已将 ‘
字符更改为正确的 '
字符。简单撇号的自动转换是由 iOS 11 Smart Punctuation 引起的。您可以使用以下输入关闭它:
input.smartQuotesType = .no
见https://developer.apple.com/documentation/uikit/uitextinputtraits/2865931-smartquotestype
我尝试在正则表达式中包含 ' 符号
我用这个功能
func matches(for regex: String, in text: String) -> [String] {
do {
let regex = try NSRegularExpression(pattern: regex)
let results = regex.matches(in: text,
range: NSRange(text.startIndex..., in: text))
return results.map {
text.substring(with: Range([=10=].range, in: text)!)
}
} catch let error {
print("invalid regex: \(error.localizedDescription)")
return []
}
}
和这个正则表达式
let matched = matches(for: "^[‘]|[0-9]|[a-zA-Z]+$", in: string)
当我搜索时,我可以找到数字和英文字母
但不是 ' 符号
我猜你真正想要的是这个:
"['0-9a-zA-Z]+"
请注意,我删除了 ^
(文本开始)和 $
(文本结束)字符,因为这样您的整个文本就必须匹配。
我已经合并了这些组,否则您将无法匹配整个单词的文本。你会得到单独的撇号,然后是单词。
我已将 ‘
字符更改为正确的 '
字符。简单撇号的自动转换是由 iOS 11 Smart Punctuation 引起的。您可以使用以下输入关闭它:
input.smartQuotesType = .no
见https://developer.apple.com/documentation/uikit/uitextinputtraits/2865931-smartquotestype