gpt4 book ai didi

swift - 如何在 Swift 中将字符串 "\u{0026}"转换为 "&"?

转载 作者:行者123 更新时间:2023-11-30 12:48:53 25 4
gpt4 key购买 nike

我有一个可以包含“\u{0026}”形式的 unicode 字符的字符串,我希望将其转换为适当的字符“&”。

我该怎么做?

let input = "\\u{0026} something else here"
let expectedOutput = "& something else here"

非常感谢!

最佳答案

您可能需要使用正则表达式:

class StringEscpingRegex: NSRegularExpression {
override func replacementString(for result: NSTextCheckingResult, in string: String, offset: Int, template templ: String) -> String {
let nsString = string as NSString
if
result.numberOfRanges == 2,
case let capturedString = nsString.substring(with: result.rangeAt(1)),
let codePoint = UInt32(capturedString, radix: 16),
codePoint != 0xFFFE, codePoint != 0xFFFF, codePoint <= 0x10FFFF,
codePoint<0xD800 || codePoint > 0xDFFF
{
return String(Character(UnicodeScalar(codePoint)!))
} else {
return super.replacementString(for: result, in: string, offset: offset, template: templ)
}
}
}

let pattern = "\\\\u\\{([0-9A-Fa-f]{1,6})\\}"
let regex = try! StringEscpingRegex(pattern: pattern)

let input = "\\u{0026} something else here"
let expectedOutput = "& something else here"

let actualOutput = regex.stringByReplacingMatches(in: input, range: NSRange(0..<input.utf16.count), withTemplate: "?")

assert(actualOutput == expectedOutput) //assertion succeeds
<小时/>

我不明白您是如何获得输入的。但如果您采用某种基于标准的表示形式,则可以更简单地获得 expectedOutput

关于swift - 如何在 Swift 中将字符串 "\u{0026}"转换为 "&"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41259153/

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