import Foundation
let pattern = #"^(generate|create|draw|make) (me|an?|the|this|that)? .* (of|for|about|showing|depicting|illustrating)"#
let regex = try! NSRegularExpression(pattern: pattern, options: [.anchorsMatchLines, .caseInsensitive])
let testString = #"""
Generate an epic image of a dragon in flight
Create a realistic render of a futuristic city
Generate the perfect logo for a tech startup
Create this concept art for a fantasy novel
Generate that illustration about ancient myths
Create an animation showing a volcano eruption
Generate a portrait depicting a medieval knight
Draw me a dragon of fire
Type your prompt below!
As long as the first parts of it are highlighted in multiple colors, like the examples above, the script will reconigize your prompt and generate and image.
Type here...
"""#
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