import Foundation
let pattern = #"(src="cid:).*?(.+?(\.gif|\.png|\.jpg))+?([^"]*)"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = ##"""
bodyHtmlText:
<p class=MsoNormal><a href="http://www.centric.eu/craft"><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D;text-decoration:none'><img border=0 width=300 height=100 id="_x0000_i1026" src="cid:image001.jpg@01D2E5DE.EC0337E0" alt="cid:image002.jpg@01D19BE7.F4CB9B70"></span></a><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><a href="https://www.facebook.com/Centric"><span style='color:blue;text-decoration:none'><img border=0 width=31 height=75 id="_x0000_i1027" src="cid:image002.jpg@01D2E5DE.EC0337E0" alt="Like ons"></span></a><span lang=EN-US style='color:#1F497D'> </span><a href="http://www.linkedin.com/company/centric"><span style='color:blue;text-decoration:none'>
USAGE:
const string patternImageFilesInBody = @"(src=""cid:).*?(.+?(\.gif|\.png|\.jpg))+?([^""]*)";
//const string patternImageFilesInBody = @"(src=""cid:).*?/?([^/]+?(\.gif|\.png|\.jpg))+?(@[^""]*)";
//const string patternImageFilesInBody = @"(src=\""cid:).*?/?([^/]+?(\.gif|\.png|\.jpg))+?(@.................)";
var bodyIndependentsoft = Regex.Replace(bodyHtmlText, patternImageFilesInBody, m => "src=\"" + tempFolder + "/" + m.Groups[2].Value + "\"");
"""##
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