快速获得字符串中子字符串的所有范围

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

我有一个字符串,例如“ ab ad adk fda kla kad ab ab kd”。我想获取所有范围的ab。(这里ab位于3位置,所以我应该获得3范围)。在正常情况下,我的代码工作正常,但是如果搜索文本为“。”,那么我得到错误的结果] >

do {
    let regEx = try NSRegularExpression(pattern: searchText, options: NSRegularExpressionOptions.CaseInsensitive)

    let matchesRanges = regEx.matchesInString(attributedText.string, options:[], range: NSMakeRange(0, attributedText.string.length))

    for rng in matchesRanges {
        let wordRange = rng.rangeAtIndex(0)
    }
} catch {
    ...
}

我有一个字符串,例如“ ab ad adk fda kla kad ab ab kd”。我想获得所有范围的ab(这里ab在3位置,所以我应该得到3范围)。在正常情况下,我的代码可以正常工作,但是...

ios swift matching
5个回答
13
投票

以下解决方案使用本机Swift 4函数range(of:, options:, range:, locale:)):


4
投票

我建议这样一种解决方案:


1
投票

您正在使用正则表达式,因此您需要注意具有特殊含义的字符-.仅是其中之一。


0
投票

您可以通过以下代码获取特定字符串的出现次数:


0
投票

Swift 5:

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