import Foundation
let pattern = #"(Soft Offer Form - Speed Tool|Lead Gen - Enterprise Form|General Contact|Agency Partner Form|Content_Download|Soft Offer Form - Webinar Registrations|General Contact|Personal Contact)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
Zendesk Web Widget
Scroll Depth
Demandbase
Campaign JULY3FREE
Personal Contact
Outbound Link
sites-copy
Google Optimize
sftp_user
add_install
backups
CTA - Above Fold
sites-new-create
page_performance
Phone
CTA - Top Nav
password_protect
Soft Offer Form - Speed Tool
Video
Soft Offer Form - Content Downloads
sites-new-copy
theme-demo
migration_checklist
General Contact
A/B Test
Buttons
wp-cli
account_user
Exit Intent Signup - Annual
portal_support
Account Name Suggestion
Lead
CTA - CTA Block
signup-gtm
hello-bar
signup
theme-download
signup_ecommerce
sites-convert-SE
Lead Gen - Enterprise Form
LiveChat
upgrade_plan
genesis-download
automated_migration
Agency Partner Form
undefined
sites-add-group
sites-edit-group
Lead Gen - Contact Us Form
sites-new-move
chat_window
ges-clicked
support-article-build-site
support-article-get-started
sites-move-SE
Content_Download
Opportunity
activity_log
Soft Offer Form - Webinar Registrations
ges-learn-more
studiopress-forum
studiopress-slack
studiopress-facebook
Scroll+Depth
Stick Metric
Bizzabo: WP Engine Summit 2019 Europe
"""#
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