gpt4 book ai didi

swift - 我不能在正则表达式中包含 ' 符号

转载 作者:搜寻专家 更新时间:2023-11-01 05:55:52 24 4
gpt4 key购买 nike

我尝试在正则表达式中包含 ' 符号

我用的是这个功能

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($0.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

关于swift - 我不能在正则表达式中包含 ' 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46162500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com