gpt4 book ai didi

ios - 使用 swift 3 将字符串从开始位置剪切到结束位置

转载 作者:搜寻专家 更新时间:2023-11-01 07:09:36 27 4
gpt4 key购买 nike

我有 string\string example 形式的字符串

"some sting with random length\233"

我想删除最后一个 \ 并获取它后面的值,所以结果将是

"some sting with random length"
"233"

我试过这段代码,但它不起作用

let regex = try! NSRegularExpression(pattern: "\\\s*(\\S[^,]*)$")
if let match = regex.firstMatch(in: string, range: string.nsRange) {
let result = string.substring(with: match.rangeAt(1))
}

最佳答案

您没有正确调整 How to get substring after last occurrence of character in string: Swift IOS 中的模式你的情况。 两个 逗号实例都必须用反斜杠替换,并且必须是“双重转义”:

let regex = try! NSRegularExpression(pattern: "\\\\\\s*(\\S[^\\\\]*)$")

(一旦被解释为正则表达式模式中的文字反斜杠,并且再次出现在 Swift 字符串文字的定义中)。

但是,一个更简单的解决方案是找到最后一次出现的反斜杠并从该位置提取后缀:

let string = "some sting with random length\\233"
let separator = "\\" // A single(!) backslash

if let r = string.range(of: separator, options: .backwards) {
let prefix = string.substring(to: r.lowerBound)
let suffix = string.substring(from: r.upperBound)

print(prefix) // some sting with random length
print(suffix) // 233
}

Swift 4 更新:

if let r = string.range(of: separator, options: .backwards) {
let prefix = string[..<r.lowerBound]
let suffix = string[r.upperBound...]

print(prefix) // some sting with random length
print(suffix) // 233
}

prefixsuffix是一个String.SubSequence,可以使用在许多地方而不是 String。如有必要,创建一个真实的字符串:

    let prefix = String(string[..<r.lowerBound])
let suffix = String(string[r.upperBound...])

关于ios - 使用 swift 3 将字符串从开始位置剪切到结束位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45731355/

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