import Foundation
let pattern = #"Subject\s*:\s*(?P<subject>.+)"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = #"""
From 1488780641874111180@xxx Mon Dec 29 12:11:00 2014
X-GM-THRID: 1488780145305309925
X-Gmail-Labels: Sent,Important
MIME-Version: 1.0
Received: by 10.52.29.70 with HTTP; Sun, 28 Dec 2014 16:11:00 -0800 (PST)
X-Originating-IP: [82.13.144.221]
In-Reply-To: <01ff42fddfded95cfa8b14fa5559b0fb.squirrel@webmail04.register.com>
References: <01ff42fddfded95cfa8b14fa5559b0fb.squirrel@webmail04.register.com>
Date: Mon, 29 Dec 2014 00:11:00 +0000
Delivered-To: hello@domain.co
Message-ID: <CAN8wjQQWm33RS-hDdE1k3c6CMOge9-eq=3GrcNssV8gPYi+osA@mail.gmail.com>
Subject: Re:<<<regading account : creation>>>
From: DG <hello@domain.co>
To: info@otherdomain.us
Content-Type: multipart/alternative; boundary=001a11c2183a9b3b4e050b4fb549
--001a11c2183a9b3b4e050b4fb549
Content-Type: text/plain; charset=UTF-8
Hey Chris,
Is that price for the pass with tax?
Also do you have any recommendations for good rental places in town?
Cheers,
-dave
"""#
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