import Foundation
let pattern = #"^((?!V2).)*- Master\s*$"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
AppMessages V2 - Dev
AppMessages V2 - Master
AWS - Octopus Release
Bellhop Model V2 - Dev
Bellhop Model V2 - Master
BellHop Services V2 - Dev
BellHop Services V2 - Master
BellHop V2 - Dev
BellHop V2 - Master
BSG Log4j Extras V2 - Dev
BSG Log4j Extras V2 - Master
BSG-BOM - Dev
BSG-BOM - Master
BSG-BOM V2 - Dev
BSG-BOM V2 - Master
Core Model V2 - Dev
Core Model V2 - Master
Core Services V2 - Dev
Core Services V2 - Master
DealerLocator - Dev
EMS Services V2 - Dev
EMS Services V2 - Master
Entitlements REST API V2 - Dev
Entitlements REST API V2 - Master
Entitlements Services V2 - Dev
Entitlements Services V2 - Master
Entitlements SOAP API V2 - Dev
Entitlements SOAP API V2 - Master
FlexNet Services - Dev
FlexNet Services - Master
GetNodeInfo BusSys-Build-Slave-01
GetNodeInfo BusSys_Corp_Build_Slave
GetNodeInfo Master
Laipac Services V2 - Dev
Laipac Services V2 - Master
LDK Services V2 - Dev
LDK Services V2 - Master
LicenseAdmin - Dev
LicenseAdmin - Master
List All Jobs
Lite Services V2 - Dev
Lite Services V2 - Master
LiteFlexNetIntegration V2 - Dev
LiteFlexNetIntegration V2 - Master
LiteIntegration - Dev
LiteIntegration - Master
Messaging Services V2 - Dev
Messaging Services V2 - Master
MTPConsumer - Dev
MTPConsumer - Master
OptionKeys - Dev
OptionKeys - Master
OptionKeysAPI - Dev
OptionKeysAPI - Master
Panther REST API V2 - Dev
Pools API V2 - Dev
Pools API V2 - Master
Pools Model V2 - Dev
Pools Model V2 - Master
Pools Services V2 - Dev
Pools Services V2 - Master
Preconfigured API V2 - Dev
Preconfigured API V2 - Master
SCL Client V2 - Dev
SCL Client V2 - Master
SentinelCloud Services V2 - Dev
SentinelCloud Services V2 - Master
SubscriptionManager V2 - Dev
SubscriptionManager V2 - Master
TermsOfService - Master
Test Support V2 - Dev
Test Support V2 - Master
Tid Services V2 - Dev
Tid Services V2 - Master
Upload templates to S3 - branch2Dev
Upload templates to S3 - Dev
Upload templates to S3 - Master
Upload templates to S3 - Test
VirtualWarehouse - Dev
VirtualWarehouse - Master
VirtualWarehouse Services V2 - Dev
VirtualWarehouse Services V2 - Master
VW Lite API - Dev
VW Lite API - Master
VW Remedy Events - Dev
VW Remedy Events - Master
VW Remedy Events Consumer - Dev
VW Remedy Events Consumer - Master
VW Remedy Events Lib - Dev
VW Remedy Events Lib - Master
VW Scheduled Tasks V2 - Dev
VW Scheduled Tasks V2 - Master
VW Sentinel V2 - Dev
VW Sentinel V2 - Master
VW Subscriptions V2 - Dev
VW Subscriptions V2 - Master
VW5 - Dev
VW5 - Master
WooCommerce API V2 - Dev
WooCommerce API V2 - Master
WooCommerce Model V2 - Dev
WooCommerce Model V2 - Master
WooCommerce Services V2 - Dev
WooCommerce Services V2 - Master
"""#
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