Swift:在String中搜索String并获取索引

时间:2018-08-07 05:10:22

标签: ios swift xcode

如何搜索字符串并获取索引,例如,我可以生成一个新的字符串/子字符串:

dfnaseurewruTESTAB=41201243

因此在此示例中,我可以搜索TESTAB并生成一个新的String:

TESTAB=41201243

2 个答案:

答案 0 :(得分:2)

您不能真正在纯Swift中做到这一点,它令人惊奇地缺乏搜索子字符串的能力。您必须在基金会在场的情况下进行操作;这样,您可以使用可可的range(of:)。结果从NSRange转换回给您一个Swift Range(包裹在Optional中,以防子串根本不存在)。范围的下限是您要查找的索引-子字符串的开头。

let s = "dfnaseurewruTESTAB=41201243"
if let r = s.range(of: "TESTAB") {
    let s2 = s.suffix(from: r.lowerBound)
    print(s2) // "TESTAB=41201243"
}

答案 1 :(得分:0)

您可以使用Regular Expression查找您的TESTAB=number字符串

  

正则表达式可以为TESTAB=[\d]+

TESTAB为您的字符串,=查找后面的数字,而[\d]+has one or more number

例如,在Swift 4.1

let regex = "TESTAB=[\\d]+"
let string = "dfnaseurewruTESTAB=41201243"
if let range = string.range(of: regex, options: .regularExpression, range: nil, locale: nil) {
    print(string[range]) // result is TESTAB=41201243
}