我正在使用Swift 2,并尝试从URL获取HTML数据响应中的数字,dataString是我的HTML文本,我使用NSRegularExpression并尝试获取字符串
let patten = "<span class=bld>(.*)USD</span>"
let reg = try? NSRegularExpression(pattern: patten, options: NSRegularExpressionOptions.init(rawValue: 0))
let rangeMatch = reg?.firstMatchInString(dataString, options: [], range: NSMakeRange(0, dataString.characters.count))
if rangeMatch != nil {
let res = (dataString as! NSString).substringWithRange((rangeMatch?.range)!)
print(res)
}
但我得到的结果是完整的字符串<span class=bld>22309 USD</span>
,我只想获得22309
个数字。任何人都可以告诉我如何得到它?
答案 0 :(得分:1)
捕获的组位于NSTextCheckingResult
对象的范围索引1+处。
...rangeMatch?.rangeAtIndex(1)
我建议使用更具体的模式:
let pattern = "<span class=bld>(\\d+)\\sUSD</span>"
或更短
let pattern = "(\\d+)\\sUSD"
\\d+
是一个或多个数字,\\s
是一个空格字符