ios - 快速从字符串中提取值

标签 ios regex swift

我有一个如下所示的字符串,我试图将每个部分 (,) 分隔成一个数组。

let stringArr = remainderString.componentsSeparatedByString(",")

0lY6P5Ur90TAQnnnI6wtnb,#29,Projekt-FZK-Haus,Projekt FZK-House create by KHH Forschuungszentrum Karlsruhe,$,$,$,(#67,#229,#275),#42

结果

["0lY6P5Ur90TAQnnnI6wtnb", "#29", "Projekt-FZK-Haus", "Projekt FZK-House create by KHH Forschuungszentrum Karlsruhe", "$", "$", "$", "(#67", "#229", "#275)", "#42"]

如果您注意到,(#67,#229,#275) 部分被分隔为“(#67”、“#229”、“#275)”

我想将(大括号)内的那些值插入到另一个数组中。所以我的问题是,如何找到开头的 ( 和结尾的 )

最佳答案

试试这个:

// Subscripting a String with NSRange. Make dealing with ObjC-classes easier
extension String {
    subscript(range: NSRange) -> String {
        let startIndex = self.startIndex.advancedBy(range.location)
        let endIndex = startIndex.advancedBy(range.length)

        return self[startIndex..<endIndex]
    }
}

let str = "0lY6P5Ur90TAQnnnI6wtnb,#29,Projekt-FZK-Haus,Projekt FZK-House create by KHH Forschuungszentrum Karlsruhe,$,$,$,(#67,#229,#275),#42"
let regex = try! NSRegularExpression(pattern: "\\((#[^\\)]+)\\)", options: [])

if let match = regex.firstMatchInString(str, options: [], range: NSMakeRange(0, str.characters.count)) {
    let substr = str[match.rangeAtIndex(1)]
    let components = substr.componentsSeparatedByString(",")

    print(components)
}

关于ios - 快速从字符串中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38255411/

相关文章:

iOS内存泄漏由于应用程序文档中存储的图像数量较多

ios swift - 具有多个数据源/ Nib 的表格 View

ios - 如何在单击 tableviewcell 中的按钮时更新 UIView

javascript - RegExp 构造函数和 Regex 文字测试函数之间的区别?

python - 正则表达式捕获最多 2 位数字和逗号(如果后跟另一个单词和数字)

PHP Regex 匹配字符串中的单词,不包括一个特定单词

swift - 背景清晰的 NSProgressIndicator

ios - Alamofire 忽略设置/处理数据的闭包

ios - 来自 TeamCity 构建代理的 "Unable to run app in Simulator"

ios - Swift:尝试使用 Facebook Open Graph 故事