import Foundation
let pattern = #"\"app\":\s\{((.|\n)*)\"local\""#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
{
"app": {
"local": "True",
"dependency_env": "dev"
},
"engine": {
"disable_jwt_check": "true",
"jwt_private_key": "sph59tZqVrjqz3BiVUnXvKRgd6BxDkN2E+TAjy96wfASO4/5DGJIQlZvnNSt4H7wKLQ0b1J5AdNJ7315B9My6w==",
"jwt_issuer": "https://hbgpmwapi-dev.kantar.com"
},
"azure": {
"app_id": "efe4d19e-880e-480e-8e0c-f86c9fd5872c",
"app_key": "b1e5em8uILeqAI.0jt=zg[mJHSaaHKz:",
"env": "dev",
"storage_key": "pKhqboH2XDRpYNLco4vyPapHNd7Ao/BO28yFBD0ooSSn/828NLMfKkkzdrqUyeeA2312Y9xAix1T/YdAHkbZCw==",
"storage_container": "marketingpressure",
"storage_endpoint": "https://hbgenginestorage.blob.core.windows.net"
},
"URL": {
"main": "http://localhost:3838"
}
}
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
if let firstMatch = regex.firstMatch(in: testString, range: stringRange) {
let result: [String] = (1 ..< firstMatch.numberOfRanges).map { (testString as NSString).substring(with: firstMatch.range(at: $0)) }
print(result)
} else {
print("No matches were found.")
}
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