import Foundation
let pattern = #"a"#
let regex = try! NSRegularExpression(pattern: pattern)
let testString = ##"""
STAT 545 REGULAR EXPRESSION TEST BED
------------------------------------
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789 +-.,!@#$%^&*();\/|<>"'
12345 -98.7 3.141 .6180 9,000 +42
Twas brillig, and the slithy toves
Did gyre and gimble in the wabe;
All mimsy were the borogoves,
And the mome raths outgrabe.
3317 Route 202
Long Branch, NJ 07740
9303 Route 1
Sun City, AZ 85351
CHALLENGES
-------------------------------------
RULES
1. Match ONLY the target elements (check top of document as well!)
2. Must be a separate match for each discrete element
3. THERE ARE CANDY PRIZES
1. DNA:
TCCGTATCAAGATCCTCTTAATAAGCCCCCGTCACTGTTGGTTGTAGAGCCCAGGACGGGTTGGCCAGATGTGCGACTATATCGCTTAGTGGCTCTTGGGCC
GATAGCTTCTTACCGGTGCGCCTCCGTACGCAGTACGATCGCACGCCCCATGAGAACGATAGGTAAACCTGGTGTCCTGTGAGCGACAAAAGCTTAAATGG
2. SMILIES:
:D :) :o :P :/
3. EMAIL ADDRESSES:
foo@demo.net
bar.ba@test.co.uk
4. HTML Tags:
<p>The <a class="APILink" target="_blank" href="https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html"><code>Pattern</code></a> API contains a number of useful <i>predefined character classes</i>, which offer convenient shorthands for commonly used regular expressions:</p>
<p><a name="CHART" id="CHART"></a></p>
5. PHONE NUMBERS:
555.123.4567
+1-800-555-2468
+49 7743 9901
6. URLs:
www.demo.com
http://foo.co.uk/
7. MACHO MAN RANDY SAVAGE QUOTATIONS:
“History beckons the Nacho Man.”
“Hulkamania is like a single grain of sand in the Sahara desert that is Nacho Madness.”
"Snap into a Slim Jim!"
9. CITATIONS:
We based our calculations on previously published methods (Nadeu 2006).
We also used a support vector machine, which is a classification method that is able to deal with highly variable data (Camps-Valls et al. 2004).
The population of this species...where the presence and transmission of introduced avian malaria (Plasmodium relictum) is low (Eggert et al. 2008, Dziel et al. 2010)
"""##
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