import Foundation
let pattern = #"(?:[\r\t\f\v ]*)(\(?[0-9]{3}\)?[-.● ]?[0-9]{3}[-.● ]?[0-9]{4})(?:\s*)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
email@gmai (757)-749-0014
(555) 555-5555
(555)555-5555
5555555555
5555555555
(757)-749-0014
(757)-749-0014
INTERIOR DESIGNER RESUME SAMPLE
47 Lance Street, Provincetown, MA 02657 (508) 047-1701 juliancrisp@email.com
Innovative interior designer with 10 years of experience in project management, space planning, and
computer-aided design. Proven ability to transform client ideas into beautiful, functional design
solutions. Skilled in color combinations, area improvement, and use of materials and illumination,
driving innovative and personalized creations.
Professional Experience
INTEGRATED DESIGN SOLUTIONS, PROVINCETOWN, MA
Interior Designer, October 2014–present
"""#
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