gpt4 book ai didi

Swift:如何在特定字符集之后获取所有内容

转载 作者:IT王子 更新时间:2023-10-29 05:16:44 25 4
gpt4 key购买 nike

给定以下字符串:

var snippet = "1111 West Main Street Beverly Hills, CA 90210 Phone: 123.456.7891"

如何提取“电话:”之后的所有内容

所以在这种情况下我想要

phone = 123.456.7891

我已经试过了:

    if let range = snippet.rangeOfString("Phone:") {

let phone = snippet.substringToIndex(range.startIndex)
print(phone) // prints 1111 West Main Street Beverly Hills, CA 90210
}

但这会打印之前的所有内容,我需要之后的所有内容。

最佳答案

在 Swift 4 中,使用 upperBound 和下标运算符以及开放范围:

let snippet = "1111 West Main Street Beverly Hills, CA 90210 Phone: 123.456.7891"

if let range = snippet.range(of: "Phone: ") {
let phone = snippet[range.upperBound...]
print(phone) // prints "123.456.7891"
}

或者考虑修剪空白:

if let range = snippet.range(of: "Phone:") {
let phone = snippet[range.upperBound...].trimmingCharacters(in: .whitespaces)
print(phone) // prints "123.456.7891"
}

顺便说一下,如果你想同时获取两者,正则表达式可以做到这一点:

let snippet = "1111 West Main Street Beverly Hills, CA 90210 Phone: 123.456.7891"
let regex = try! NSRegularExpression(pattern: #"^(.*?)\s*Phone:\s*(.*)$"#, options: .caseInsensitive)
if let match = regex.firstMatch(in: snippet, range: NSRange(snippet.startIndex..., in: snippet)) {
let address = snippet[Range(match.range(at: 1), in: snippet)!]
let phone = snippet[Range(match.range(at: 2), in: snippet)!]
}

有关 Swift 的早期版本,请参阅 previous revision of this answer

关于Swift:如何在特定字符集之后获取所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34073610/

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