import Foundation
let pattern = #"(?i)([\w.]+@[\w.]+)|(?:(?:\b|[,/]\s*)(?:whatsapp|viber|wechat))+\b\s*[::]?\s*([()+\d -]+\d)|\bline(?:\sid)?\s*(?:[::]\s*)?@?(\w+)|((?:\+\d+[ -]?)?(?:\(\d+\)[ -]?)?\d[\d -]{5,}\d)"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
??5-yr online store ? Real pictures?? ?Mirror Quality ??1:1 ?Whatsapp/Viber +861776345378 ?spikydudewonderland@gmail.com ✈️✈️Worldwide Shipping
Девочки это наша новая страничка.Только копии Lux, искателям дешевых подделок не беспокоить. По всем вопросам viber,whatsapp +79128743333 Лианна
Recruitment Agents????The most powerful manufacturers,we have thebest quality.?Wechat:13255996580??Whatsapp:+8618820784535
? เข้าช้อปทุกวันจ้า? ซื้อกับวี้ได้ของแท้แน่นอนค่า? แบรนด์อื่นสอบถามได้ค่า? ดรีวิว@reviewkayasisshopp? LINE ID : @kux1427k (มี @ ด้วยจ้า)
Menyediakan Kacamata Termurah dengan Kualitas Super
from: Surabaya
Tanya / order :
pin bb : 59f72347
WA/SMS/Call : 082231506095
Line : qurotinayunina
?Brandname Hiend สั่งเมื่อพร้อมโอน?CFห้ามCC?ship world wide ?LINE:@candy_hiend(มี@) candy_hiend@hotmail.com
0532 397 49 40
1-877-958-5211
(38)99937-7007
+12345678
+1234567
"""#
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