import Foundation
let pattern = #"^[0-9a-zA-Z]{10}.*([A-Z\s]{16,})\\n"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = ##"""
4nXQOweFyC\x10HWANG SEAN SOJIN\n
^[0-9a-zA-Z]{10}\\[0-9a-z]{3}([A-Z\s]{3,})\\n
^[0-9a-zA-Z]{10}\\x10([A-Z\s]{3,})\\n
^[0-9a-zA-Z]{10}\\x14([A-Z\s]{3,})\n
# 정의되어야 함
4nYBfE4dug\x07GUO JIE\n
4nYWf22CBO\x08LI FULAN\n
^[0-9a-zA-Z]{10}\\x08([A-Z\s]{3,})\\n
4mfP1jNaF4\x14광진실리콘(주)\n
4nXckRULYB\x0fCHANG LAI HSIEN\n
0UN97Wa9oU\t507030360A0130(\x010\x011\x011\x010\x0202\x011(\x010(\x010\x01N\x0b20년/20년\x082021031860860\x012\x011\x03B\x011\x01N\x0820210318\x0820210318\x0820210318\x132021-03-18 12:01:34\x011\x0fCHANG LAI HSIEN\x132021-03-18 10:57:01\x132021-03-18 10:57:14\x02[메리츠화재] 모바일 전자서명 안내\n
4nAjfKqh8i\x0bQUAN CANXIE\n
^[0-9a-zA-Z]{10}\x0b(\([가-힣].*)\n
^[0-9a-zA-Z]{10}([A-Z가-힣\s]{2,})\\n
4nXzVRFyIl\tJIN GUANGMAN\n
4nXzVRFyIl\t김현수\n
4nJcIVZHxD\x0b(주)철마\n
^[0-9a-zA-Z]{10}\\x0b(\\([가-힣].*)\\n
^[0-9a-zA-Z]{10}\\x0b(\([가-힣].*)\\n
^[0-9a-zA-Z]{10}\t([A-Z가-힣\s]{2,})\n
^[0-9a-zA-Z]{10}\\t([A-Z가-힣\s]{2,})\\n
^[0-9a-zA-Z]{10}\t([A-Z가-힣\s]{2,})\n
"""##
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