import Foundation
let pattern = #"^\( (.*)(\([A-Za-z0-9,\-]+\))_(.*) - (Google Chrome|Internet Explorer)\)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
( 终端知识库 - Google Chrome)
( 荣耀盒子Pro_电视画面显示不满屏、比例失调或超出屏幕显示区域怎么办? - Google Chrome)
( 多屏互动是什么功能?不同手机如何与盒子进行多屏互动? - Google Chrome)
( 【维修配件价格查询】 - 华为服务与支持 - 华为手机官网 - Google Chrome)
( 华为消费者业务官网-服务与支持 - Google Chrome)
( M2是否支持皮套模式,怎么开启皮套模式 - Google Chrome)
( 荣耀X2(GEM-703L,GEM-703LT)_为什么设置里面有两个IMEI? - Internet Explorer)
( 荣耀6(H60-L01)_电池无法正常充电,如何解决? - Internet Explorer)
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let matches = regex.matches(in: testString, range: stringRange)
var result: [[String]] = []
for match in matches {
var groups: [String] = []
for rangeIndex in 1 ..< match.numberOfRanges {
let nsRange = match.range(at: rangeIndex)
guard !NSEqualRanges(nsRange, NSMakeRange(NSNotFound, 0)) else { continue }
let string = (testString as NSString).substring(with: nsRange)
groups.append(string)
}
if !groups.isEmpty {
result.append(groups)
}
}
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Swift 5.2, please visit: https://developer.apple.com/documentation/foundation/nsregularexpression