在字符串前后找到一个单词

时间:2018-10-26 12:37:08

标签: ios swift

我有一个像这样的字符串...

ab-0-myCoolApp.theAppAB.in

如何从该字符串中获取单词myCoolApp ...?另外,还有许多格式相同的字符串,即myCoolApp可以是myCoolAppABX或myCoolAppABCD等。

1 个答案:

答案 0 :(得分:1)

这可能是对您的问题的非常简短的解决方案(=众多解决方案之一),但是核心概念在每种情况下都是类似的。


输入具有一些随机值:

let inputs = ["ab-0-myCoolApp.theAppAB.in", "ab-0-myCoolAppABX.theAppAB.in", "ab-0-myCoolAppABXC.theAppAB.in"]

并使用正则表达式查找匹配项:

let regExp = try? NSRegularExpression(pattern: "-([^-]*?)\\.", options: NSRegularExpression.Options.caseInsensitive)

然后释放海妖:

inputs.forEach { string in
    regExp?.matches(in: string, options: NSRegularExpression.MatchingOptions.reportProgress, range: NSMakeRange(0, string.lengthOfBytes(using: .utf8))).forEach({
        let match = (string as NSString).substring(with: $0.range(at: 1))
        debugPrint(match)
    })
}

最终它将打印出以下列表:

"myCoolApp"
"myCoolAppABX"
"myCoolAppABXC"

注意: ,您可能需要在获得比赛的过程中实施更多的故障保护措施,或者可以在方便时重构整个构想。