我在Swift中有一个String,它在Xcode的调试器中看起来如下
随机文本:\ u {e2} specificText:
当我在Xcode的控制台中打印文本时,它看起来像
随机文本:specificText:
如果我在某些编辑器中粘贴有问题的文本,它看起来像一个粗体点。
我必须使用哪个正则表达式来捕获上述文本中的\u{e2}
?
那是哪个unicode角色?
我使用以下String扩展来获取捕获的组:
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)")
答案 0 :(得分:0)
我使用以下代码使用Xcode调试了包含\u{e2}
的字符串:
snippet.characters.forEach { character in
print(character)
}
在print
行设置断点后,我发现尽管Xcode调试器在查看字符串时显示以下Unicode字符为\u{e2}
但我实际遇到的字符是
https://unicode-table.com/en/200E/
我可以使用以下代码捕获unicode字符,并在上面的问题中概述我的扩展名:
snippet.capturedGroups(forRegex: "([\\u200E]{1})")
snippet.capturedGroups(forRegex: "([\\u202A]{1})")
snippet.capturedGroups(forRegex: "([\\u202C]{1})")