import Foundation
let pattern = #"\"logUser\"(?=.*\:)([\s\:]+)([^\,}]+?)(\,|\})"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
{
"id": 1,
"numeracao": "001",
"logUser" : 100,
"permissionario": {
"id": 3113715,
"nome": "ARTHUR MATHEUS SÉRGIO DA SILVA",
"dataDeNascimento": "2000-12-10",
"endLogradouro": "RUA TERESINA",
"endNumero": "89465468",
"endBairro": "ROSA DOS VENTOS",
"endCidade": "PARNAMIRIM",
"endUf": "RN",
"endCep": "59142125",
"endComplemento": null,
"telefoneFixo": null,
"telefoneMovel": "(94) 949849849",
"email": null,
"logDate": "2019-01-16",
"logUser": null,
"sexo": "MASCULINO",
"foto": null,
"cpf": "10322314593",
"estadoCivil": "CASADO",
"cnhNumero": null,
"cnhCategoria": null,
"cnhValidade": null,
"rgNumero": "64684654",
"rgOrgaoExpeditor": "SSP",
"rgDataEmissao": null,
"rgUF": "RN",
"status": true
},
"veiculo": {
"id": 3,
"placa": "JUQ9196",
"marca": "RENAULT",
"modelo": "SC",
"renavam": "54840252144",
"anoDeFabricacao": "2006",
"corPredominante": "BRANCO",
"logCidadao": null,
"status": true,
"logUser": null,
"logDate": "2019-01-16T11:05:10.425",
"version": 1
},
"logDate": "2019-01-16T11:05:13.264",
"status": true,
"version": 0,
"motorista": {
"id": 3113717,
"nome": "DAVI LEVI GALVÃO",
"dataDeNascimento": "1996-10-20",
"endLogradouro": "RUA FRANCISCO FERREIRA DA SILVA",
"endNumero": "911",
"endBairro": "VALE DO SOL",
"endCidade": "PARNAMIRIM",
"endUf": "RN",
"endCep": "59143025",
"endComplemento": null,
"telefoneFixo": "8429884472",
"telefoneMovel": "84995302167",
"email": "ddavilevigalvao@mtic.net.br",
"logDate": "2019-01-16",
"logUser": null,
"sexo": "MASCULINO",
"foto": null,
"cpf": "98842966428",
"estadoCivil": "CASADO",
"cnhNumero": null,
"cnhCategoria": null,
"cnhValidade": null,
"rgNumero": "184962122",
"rgOrgaoExpeditor": "SSP",
"rgDataEmissao": null,
"rgUF": "RN",
"status": true
}
}
"""#
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