我正在解析一个html页面 - 将其转换为完整的字符串 - 而我得到的是一个列表,我可以将其拆分为多个部分。这就是我的意思:
chemestry // subject name
21/10 // date of the exam
6+ // value of the first mark
25/12 // date of the second exam
8 // value of the second mark
physics // subject name [and so on...]
27/11
10
我正在构建的应用程序将显示表示每个主题的tableview,如果单击一个单元格,用户将看到他在该特定主题中获得的标记列表。
我需要做的是让“编译器”知道字符串代表主题名称,用“ / ”分隔的两个整数代表商标的日期和单个整数(最后后跟+或 - )是标记的值。此外,每次编译器遇到一个新字符串时,它都意味着正在解析一个新的不同主题。
我怎样才能做到这一点?非常感谢您的帮助
答案 0 :(得分:0)
试试这个正则表达式:
func regMatchGroup(regex: String, text: String) -> [[String]] {
do {
var resultsFinal = [[String]]()
let regex = try NSRegularExpression(pattern: regex, options: [])
let nsString = text as NSString
let results = regex.matchesInString(text,
options: [], range: NSMakeRange(0, nsString.length))
for result in results {
var internalString = [String]()
for var i = 0; i < result.numberOfRanges; ++i{
internalString.append(nsString.substringWithRange(result.rangeAtIndex(i)))
}
resultsFinal.append(internalString)
}
return resultsFinal
} catch let error as NSError {
print("invalid regex: \(error.localizedDescription)")
return [[]]
}
}
// USAGE:
let string = "Add \"ABC\" \"ABD\""
let matches = regMatchGroup("\"([^\"]+)\"", text: string)
if (matches.count > 0) // If we have matches....
{
print(matches[0][1]) // Print the first one, Group 1.
}