我对 Swift 中的 NSRegularExpression 有些困惑,能有人帮我吗?
任务1:给定 ("name", "john", "name of john")
,
我应该得到 ["name", "john", "name of john"]
。在这里,我应该避免括号。
任务2:给定 ("name", " john", "name of john")
,
我应该得到 ["name", "john", "name of john"]
。在这里,我应该避免括号和额外的空格,并最终获取字符串数组。
任务3:给定 key = value // comment
,
我应该得到 ["key", "value", "comment"]
。在这里,我应该通过避免使用等号和“//”来仅获取行中的字符串。
我已经尝试了以下代码来完成任务1但未成功。
let string = "(name,john,string for user name)"
let pattern = "(?:\\w.*)"
do {
let regex = try NSRegularExpression(pattern: pattern, options: .caseInsensitive)
let matches = regex.matches(in: string, options: [], range: NSRange(location: 0, length: string.utf16.count))
for match in matches {
if let range = Range(match.range, in: string) {
let name = string[range]
print(name)
}
}
} catch {
print("Regex was bad!")
}
提前感谢。
string
值与你问题中提供的任何“给定”任务都不匹配。一个有引号,另一个没有。 - rmaddy("name","john","name of john")
,但是您的代码片段使用了(name,john,string for user name)
,那么到底是哪种方式呢?是在子字符串周围加上引号还是不加? - Rob