gpt4 book ai didi

regex - 如何使用 swift 正则表达式捕获 unicode 字符

转载 作者:行者123 更新时间:2023-11-30 11:46:37 29 4
gpt4 key购买 nike

我在 Swift 中有一个字符串,在 Xcode 的调试器中看起来如下

Random Text: \u{e2}specificText:

当我在 Xcode 控制台中打印文本时,它看起来像

Random Text: ‎ specificText:

如果我将相关文本粘贴到某个编辑器中,它看起来像一个粗体点。

我必须使用哪个正则表达式才能捕获上述文本中的 \u{e2} ?这是哪个 unicode 字符?

我使用以下字符串扩展来获取捕获的组:

extension String {
func capturedGroups(forRegex regex: String) -> [String]? {
guard let expression = try? NSRegularExpression(pattern: regex) else { return nil }
let matches = expression.matches(in: self, options: [], range: NSRange(location:0, length: (self as NSString).count))
guard let match = matches.first else { return nil }
let lastRangeIndex = match.numberOfRanges - 1
guard lastRangeIndex >= 1 else { return nil }
var results = [String]()
for i in 1...lastRangeIndex {
let capturedGroupIndex = match.range(at: i)
let matchedString = (self as NSString).substring(with: capturedGroupIndex)
results.append(matchedString)
}
return results
}
}

我尝试了以下方法,但没有成功

snippet.capturedGroups(forRegex: "(\\u00e2)")

最佳答案

我使用 Xcode 调试了包含 \u{e2} 的字符串,代码如下:

snippet.characters.forEach { character in
print(character)
}

print 行设置断点后,我发现虽然 Xcode 调试器在查看字符串时将以下 Unicode 字符显示为 \u{e2}我实际遇到的角色是

https://unicode-table.com/en/200E/

https://unicode-table.com/en/202A/

https://unicode-table.com/en/202C/

我可以使用以下代码捕获 unicode 字符,并使用上面问题中概述的扩展名:

snippet.capturedGroups(forRegex: "([\\u200E]{1})")
snippet.capturedGroups(forRegex: "([\\u202A]{1})")
snippet.capturedGroups(forRegex: "([\\u202C]{1})")

关于regex - 如何使用 swift 正则表达式捕获 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48754233/

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