import Foundation
let pattern = #"(?m)(?P<head>^tacacs[\s|-]server\shost\s)(?P<ipv4>(\d+\.){3}\d+)(?P<key>\skey\s[0-9]\s\S[a-zA-Z0-9]+\S)?(?P<tail>(.*))"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
aaa group server tacacs+ tacacs
server 172.26.60.235
server 172.24.248.209
source-interface mgmt0
aaa group server tacacs+ TACACS-GROUP
server 172.26.60.235
source-interface mgmt0
aaa group server tacacs+ TACACS-TEST1
server 172.26.60.235
server 172.24.248.209
aaa group server tacacs+ tacacs+group
source-interface mgmt0
ip tacacs source-interface mgmt0
tacacs-server host 172.26.60.235 key 7 "Foihmr3" timeout 5
tacacs-server host 172.24.248.209 key 7 "Foihmr3"
tacacs server host 172.24.248.209 key 7 "Foihmr3"
tacacs-server host 172.26.60.235 timeout 5
tacacs-server host 172.26.60.235
tacacs-server host 172.24.248.209
"""#
let stringRange = NSRange(location: 0, length: testString.utf16.count)
let substitutionString = #""#
let result = regex.stringByReplacingMatches(in: testString, range: stringRange, withTemplate: substitutionString)
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