import Foundation
let pattern = #"(?:opc.tcp|https|http):\/\/(\S+):\d+[\/\w]*"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
https://198.10.157.14:4814/fdggfh/fdhgdsf/gnhdfg
opc.tcp://198.10.157.14:4814/fdggfh/fdhgdsf/gnhdfg
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254
=[\w\W]*(auto[\w\W]*eth2\s+inet\s+(dhcp|static)\s*((?:address\s+\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(?:netmask\s+\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+(?:gateway\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})))?)
auto eth2
iface eth2 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254
pre-up /sbin/ifconfig $IFACE mtu 1450
auto eth3
iface eth3 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254
= ([\d\.]+)(\w?)\s+\d+%.*
/dev/sda1 ff 55 7sg233 fgd 3.7G 4.0K 3.7G 0% /mnt/sda1
<?xml version="1.0" encoding= "utf-8"?>
<confi guration>
[\w\W]*(auto[\w\W]*eth2\s+inet\s+(dhcp|static)\s+((?:address\s+\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})?\s*(?:netmask\s+\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})?\s*(?:gateway\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}))?)?\s+(pre-up \/sbin\/ifconfig \$IFACE mtu \d{3,4}\s+))
"""#
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