import Foundation
let pattern = #"(?<title>.+)\s+(?<text>[\w\W]+?)\s*(?:---|$)"#
let regex = try! NSRegularExpression(pattern: pattern, options: .anchorsMatchLines)
let testString = #"""
Automation Anxiety: Is Your Job Safe?
Many worry that AI will take over human jobs. However, the reality is more complex than simple replacement.
---
AI Will Disrupt Jobs, But Create New Ones
A shift is coming where many roles may be displaced. But new opportunities will also arise, balancing the job market.
---
AI Augments Human Potential
Instead of replacing individuals, AI enhances our work capabilities. It allows us to focus on creative and complex tasks that require human insight.
---
New Industries Will Emerge
The growth of AI will lead to unprecedented job opportunities. Fields like data science and machine learning will see increasing demand.
---
Prepare Yourself for an AI Future
Upskilling is essential to remain relevant in a changing job landscape. Emphasizing human skills like empathy and creativity will provide a competitive edge.
"""#
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