import Foundation
let pattern = #"lat"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = ##"""
# Degrees minutes
# \d+\W+\d+\W+\d+\.?\d*
"-77.566296, 41.471044"
5234098, 29384
40° 37' 03.620\" N
39.9153 N 78.3405 W
CORNPLANTER BRIDGE QUAD.--LAT. 41-48-18.41--LONG. -78-52-51.26
LUDLOW QUAD--LAT.41-39-16.0500--LONG.-78-55-11.1200
LAT 41-45-00 LONG 75-50-00
LAT 41.73381944 LONG -75.87685278
Ref Latitude 41 81833 - Ref Longitude -75 15167
LAT 41 56' 11.28\" N--LON 76 52' 03.36\" W
[891] "McNett TOWNSHIP"
[892] "TWP - Range - Sec"
[893] "MONETT TOWNSHIP,LYCOMING COUNTY,PA
LAT 41 42 12.6700
LAT 41 DEG 43-52-0300
LAT 41.4122917
Latitude: 40.752 N
Lat. 40.72617600* N
Longitude: 80-24-41 W
Latitude: 40.653407 N
LAT: 40.687574
LAT
LAT: 40-50-13.7000
Latitude: 40.83721N
LATITUDE
Latitude 39-53-12.33 N
LATITUDE 39-53.442319 N
Latitude 39-53-43.26 N
Latitude 39.8949 N
LAT: 41-43-26.9600 N
LAT: 41-43-29.83
LAT: 41*51'42.99\" N
LAT: 41-46-9.8700 N
LATITUDE: 41* 42' 40.19\"
41-42-40.19 LAT
API # 37-015-208801-00--X=2201217.34E Y=632183.50N--LAT"
03-029-01
"""##
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