use strict;
my $str = '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)';
my $regex = qr/a/p;
if ( $str =~ /$regex/ ) {
print "Whole match is ${^MATCH} and its start/end positions can be obtained via \$-[0] and \$+[0]\n";
# print "Capture Group 1 is $1 and its start/end positions can be obtained via \$-[1] and \$+[1]\n";
# print "Capture Group 2 is $2 ... and so on\n";
}
# ${^POSTMATCH} and ${^PREMATCH} are also available with the use of '/p'
# Named capture groups can be called via $+{name}
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 Perl, please visit: http://perldoc.perl.org/perlre.html