use strict;
my $str = 'Content-Type: application/ms-tnef; name="winmail.dat"
Content-Transfer-Encoding: binary
From: ABC aa DDD <aaaa.b@abc.com>
To: DDDDD dd <sssss.r@abc.com>
CC: Rrrrr rrede <sssss.rv@abc.com>, Dsssssf V R
<dsdsdsds.vr@abc.com>, Psssss A <pssss.a@abc.com>, Logistics
<LOGISTICS@abc.com>, Gssss Bsss P <gdfddd.p@abc.com>
Subject: RE: [MyApps] (PRO-34604) PR for Additional Monitor allocation [CITS
Ticket:258849]
Thread-Topic: [MyApps] (PRO-34604) PR for Additional Monitor allocation
[CITS Ticket:258849]
Thread-Index: AQHRXMJHE6KqCFxKBEieNqGhdNy7Pp8XHc0A
Date: Mon, 1 Feb 2016 17:56:17 +0530
Message-ID: <B7F84439E634A44AB586E3FF2EA0033A29E27E47@JETWINSRVRPS01.abc.com>
References: <JA.101.1453963700000@myapps.abc.com>
<JA.101.1453963700000.978.1454311765375@myapps.abc.com>
In-Reply-To: <JIRA.450101.1453963700000.978.1454311765375@myapps.abc.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-Exchange-Organization-SCL: -1
X-MS-TNEF-Correlator: <B7F84439E634A44AB586E3FF2EA0033A29E27E47@JETWINSRVRPS01.abc.com>
MIME-Version: 1.0
X-MS-Exchange-Organization-AuthSource: TURWINSRVRPS01.abc.com
X-MS-Exchange-Organization-AuthAs: Internal
X-MS-Exchange-Organization-AuthMechanism: 04
X-Originating-IP: [1.1.1.7]';
my $regex = qr/(?:To:|(?!^)\G).*?<([^>]*)>(?=.*Message-ID)/sp;
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