Ios Swift:在字符串中搜索字符串并获取索引

Ios Swift:在字符串中搜索字符串并获取索引,ios,swift,xcode,Ios,Swift,Xcode,如何搜索字符串并获取索引,以便生成新字符串/子字符串,例如: dfnaseurewruTESTAB=41201243 因此,在本例中,我可以搜索TESTAB并生成一个新字符串: TESTAB=41201243 在纯Swift中,您无法真正做到这一点,因为它(令人惊讶地)缺乏搜索子字符串的能力。你必须在基金会的基础上运作;这样,您就可以使用Cocoa的范围(of:)。结果将从NSRange转换回Swift范围(如果子字符串根本不存在,则以可选格式包装)。范围的下限是您要查找的索引-子字符串的开

如何搜索字符串并获取索引,以便生成新字符串/子字符串,例如:

dfnaseurewruTESTAB=41201243
因此,在本例中,我可以搜索TESTAB并生成一个新字符串:

TESTAB=41201243

在纯Swift中,您无法真正做到这一点,因为它(令人惊讶地)缺乏搜索子字符串的能力。你必须在基金会的基础上运作;这样,您就可以使用Cocoa的
范围(of:)
。结果将从NSRange转换回Swift范围(如果子字符串根本不存在,则以可选格式包装)。范围的下限是您要查找的索引-子字符串的开始

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

在纯Swift中,您无法真正做到这一点,因为它(令人惊讶地)缺乏搜索子字符串的能力。你必须在基金会的基础上运作;这样,您就可以使用Cocoa的
范围(of:)
。结果将从NSRange转换回Swift范围(如果子字符串根本不存在,则以可选格式包装)。范围的下限是您要查找的索引-子字符串的开始

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

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

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

使用
TESTAB
是您的字符串,
=
查找后面的数字,
[\d]+
有一个或多个数字

例如,在
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
}

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

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

使用
TESTAB
是您的字符串,
=
查找后面的数字,
[\d]+
有一个或多个数字

例如,在
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
}