我有这段文字:
different text asdasd anasdasdd different text asdsdas @"1 my text" different text different text asdsdas @"2 my text" text different text asdsdas @"3 my text" @"4 my text" asdasd anasdasdd different
我要筛选此文本。我要删除除引号中的文本以外的所有文本。我想得到这个结果并在控制台中显示:
@"1 my text"
@"2 my text"
@"3 my text"
@"4 my text"
怎么做?
更新:
有时我的文字看起来像这样:
@"1 my \ntext"
@"1 my text"
@"1 \nmy \ntext"
@"\n1 my text"
字符
\n
最佳答案
你可以这样做,
let text = "different text asdasd anasdasdd different text asdsdas @\"1 😂 my text\" different text different text asdsdas @\"2 my text\" text different text asdsdas @\"3 my text\" @\"4 my text\" asdasd anasdasdd different"
let regex = try! NSRegularExpression(pattern:"@\"(.*?)\"", options: .dotMatchesLineSeparators)
var results = [String]()
regex.enumerateMatches(in: text, options: [], range: NSMakeRange(0, text.utf16.count)) { result, flags, stop in
if let r = result?.range(at: 1), let range = Range(r, in: text) {
results.append(String(text[range]))
}
}
print(results)
输出如下,
["1 😂 my text", "2 my text", "3 my text", "4 my text"]
仅供参考。您也可以为上述函数创建扩展以进行代码优化。