use strict;
my $str = '04/20/2009; 04/20/09; 4/3/09 7/8/71
Mar-20-2009; Mar 20, 2009; March 20, 2009; Mar. 20, 2009; Mar 20 2009
20 Mar 2009; 20 March 2009; 20 Mar. 2009; 20 March, 2009
Mar 20th, 2009; Mar 21st, 2009; Mar 22nd, 2009
Feb 2009; Sep 2009; Oct 2010
6/2008; 12/2009
6/1998 Primary Care Doctor:
2009; 2010
(4/10/71)Score-1Audit C Score Current: 9/27/75.
1; 10/13/1976 Audit C Score,
4-13-82 Other Child Mental occasion 5/21/77.
1; 10/13/1976 Audit C
(1988-now)
B12 969 2007
Lab: B12 969 2007
Ely 708-810-7787
February, 2010
URUGUAY September 1984.
7HH, April 1985 Hx of Outpatient
Venlafaxine 37.5mg daily: May, 2011: self-discontinued
) Paxil (Jan 1978) : sedation
LFTs WNL (October 1996)Problems Opioid dependence
"I wasn\'t getting anywhere" (April 1988)Prior
Prozac 20 mg daily: February, 1995: self-discontinued
sLexapro (1988-now): Good response (anxiety)
pOct 2015 - Admitted to Gray
lNovember 1990 - NPCCHx of Outpatient Treatment: Yes';
my $regex = qr/([a-zA-Z]+)[\s\-\.]+(\d{1,2})[\s\-\,]+(\d{4})/p;
if ( $str =~ /$regex/g ) {
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