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

问题描述 投票:25回答:3

给出以下字符串:

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
    }

但是这会打印所有内容,然后才需要。

给出以下字符串:var snippet =“ 1111 West Main Street Beverly Hills,CA 90210电话:123.456.7891”如何提取“电话:”之后的所有内容,因此,在这种情况下,我希望电话= ...] >

swift swift2
3个回答
53
投票

在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"
}

9
投票

以一种非常基本的方式,并假设您可以保证字符串的格式,您可以使用.components(separatedBy: "Phone:"),因此之前的任何内容都将在索引0处,而在索引1之后将发生]


-2
投票

仅使用func substringFromIndex,但将索引增加"Phone:"的长度

© www.soinside.com 2019 - 2024. All rights reserved.