gpt4 book ai didi

swift - 如何从 Swift 4 中的字符串中提取未知子字符串?

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

使用 swift 4,我需要解析一个字符串以获得始终不同的子字符串。例如:

let str = "[33376:7824459] Device Sarah's Phone (Hardware: D21AP, ECID: 8481036056622, UDID: 76e6bc436fdcfd6c4e39c11ed2fe9236bb4ec, Serial: F2LVP5JCLY)"

let strRange = str.range(of: "(?<=Device )(?= (Hardware)", options: .regularExpression)
print(strRange!)

我认为这会输出“Sarah's Phone”

我没有收到此代码的任何错误,但它也无法正常工作。我做错了什么?

最佳答案

几个问题:

  1. 您在这里进行了前瞻和后视,但实际上没有匹配任何字符的内容,因此除了空字符串外,它永远不会匹配任何内容。

  2. 您没有正确转义前瞻中的括号。

  3. 您应该使用 if letguard let 而不是 ! 来解包可选。否则,当您遇到与模式不匹配的输入字符串时,您会遇到崩溃。

  4. 我不确定您为什么期望 print(strRange) 输出文本。 strRange 是一个范围,不是字符串或子字符串。

此示例将解决您的问题:

import Foundation

let str = "[33376:7824459] Device Sarah's Phone (Hardware: D21AP, ECID: 8481036056622, UDID: 76e6bc436fdcfd6c4e39c11ed2fe9236bb4ec, Serial: F2LVP5JCLY)"

if let strRange = str.range(of: "(?<=Device ).*(?= \\(Hardware)", options: .regularExpression) {
print(str[strRange])
} else {
print("Not Found")
}

关于swift - 如何从 Swift 4 中的字符串中提取未知子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49121534/

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