import Foundation
let pattern = #"^\W|^\d|^[A-Z ]+$|^[tT]able.+|^[Ff]igure.+|^[fF][aA][Xx].+|^[Ee]mail.+|^EMAIL.+|\.[\w]+\.|\d[\+\-\\\*\/]\d|[\(\)\+\-\\\*\/] [\(\)\+\-\\\*\/]"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
AL SJ
alias56 45 5
23
table 3
I love my mom (YES)
(123)
EMAIL
email :
Fig.2.3.
a.b.b.
Model ES2/50/600 ALD Vacuum Technology will be operated in December 2007
International Price Ex) \1,000,000
(1985) An almost ideal demand system for visitor expenditures, Journal of Transport Economics and Policy, Vol.19, No.2, 161-171
Then he gave advice to Morgenstern not to pay too much respect to the Austrian tradition and to go on with his own belief of the impossibility of forecasting
Head Office & Plant: 3-20, 1-chome, Higashisuna, Koto-ku, Tokyo 136-0074
micro-amanlysis of ther fh ehif wnf . ejf-e weew e$ kgejg ^%&%^ ekjwe843759843 iy3ty dfgmdbkjjkdg73 dg gh
This study applies the Repeated Discrete Choice Model (hereafter RDC) as one of (.
.
"""#
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