从字符串中提取文本

时间:2015-12-17 01:14:17

标签: ios swift2 text-extraction

嗨,我有这个错误,我一直想到说'[String]'类型的值没有成员'字符'

这是我的代码:

let sentence = "the mans states of this game are Jumping: 132.4 and Speed: 142.192"


func matchesForRegexInText(regex: String!, text: String!) -> [String] {

do {
    let regex = try NSRegularExpression(pattern: regex, options: [])
    let nsString = text as NSString
    let results = regex.matchesInString(text,
        options: [], range: NSMakeRange(0, nsString.length))
    return results.map { nsString.substringWithRange($0.range)}
} catch let error as NSError {
    print("invalid regex: \(error.localizedDescription)")
    return []
 }
}

let sentJumping = matchesForRegexInText("Jumping:\\s+\\d+.\\d+", text: sentence)
print(sentJumping)

let gallNumb = sentJumping.characters.split(":").map{ String($0) } // The error I'm getting is on this line

2 个答案:

答案 0 :(得分:4)

EDITED

在尝试使用字符串方法sentJumping之前,您需要将字符串数组String转换为characters。就像现在一样,sentJumping的类型为[String](数组)。一种方法可以是将数组减少为一个字符串,作为字符串数组中所有字符串条目的总和。

尝试使用以下

替换最后一行代码
let gallNumb = sentJumping.reduce("", combine: +).characters.split(":").map{ String($0) } 

请注意,通过使用另一个答案中建议的sentJumping[0]解决方案,您将获得数组的第一个条目(在您的特定示例中:数组只有一个条目,ok),并且如果数组为空,则为您提供运行时异常。

答案 1 :(得分:1)

你可以尝试

[0]

您的函数返回一个数组。您需要使用header#home div.header-content div#code-input button#code-submit { background-color: #7BE13E; background-image: url("/img/triangle-white.svg"); background-repeat: no-repeat; background-size: contain; width: 75px; position: relative; background-position: left center; margin-left: -3px; } 来检索所需的结果。