import Foundation
let pattern = #"(?<=\w):(?=\w[^<>]*>)(?!\w+=)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
<ns:Documents xmlns:ttn="http://fsrar.ru/WEGAIS/ReplyNoAnswerTTN" xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" class=" FB_FW_ext BlitzScPluginAdapter">
<ns:Owner>
<ns:FSRAR_ID>3463047</ns:FSRAR_ID>
</ns:Owner>
<ns:Document>
<ns:ReplyNoAnswerTTN xmlns:ttn="http://fsrar.ru/WEGAIS/ReplyNoAnswerTTN" xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ttn:Consignee>030000414982</ttn:Consignee>
<ttn:ReplyDate>2020-09-09T15:30:17.893</ttn:ReplyDate>
<ttn:ttnlist xmlns:ttn="http://fsrar.ru/WEGAIS/ReplyNoAnswerTTN" xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ttn:NoAnswer xmlns:ttn="http://fsrar.ru/WEGAIS/ReplyNoAnswerTTN" xmlns:ns="http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ttn:WbRegID>TTN-0407756344</ttn:WbRegID>
<ttn:ttnNumber>РН00012138</ttn:ttnNumber>
<ttn:ttnDate>2020-09-05</ttn:ttnDate>
<ttn:Shipper>030000009719</ttn:Shipper>
</ttn:NoAnswer>
</ttn:ttnlist>
</ns:ReplyNoAnswerTTN>
</ns:Document>
</ns:Documents>
"""#
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