use strict;
my $str = 'Platelet Count : 297 10 ^ 3/c.mm150 - 450
Total T3 (Tri-iodothyronine) : 86.99 ng/dl 58 - 159
Bilirubin (Direct) SERUM 0.32 0 - 0.50 mg/dl
Total Cholesterol SERUM 180.00 0 - 200 mg/dl
Packed Cell Volume : 39.7 % 36.0 - 46.0
asd123
y Q P Age /Sex * 45Years / Female123asd
Blood Sugar Fasting PLASMA 92 70 - 105 mg/dl
Referred By : QUANTUM CORPORTAE HEALTH Age /Sex : 32 Years Male
Packed Cell Volume : 39.7 % 36.0 - 46.0
Platelet Count : 341 10 * 3/c.mm150 - 400
Uric Acid SERUM 8.42* 3.50-7.20 mg/dl
SERUM TOTAL CHOLESTEROL 180 mg/dl 123Desirable
ESR :* 22 mm / thr. 0-12
Haemoglobin - 12.4 gm % 12.0 - 15.0
Erythrocytes : 4.30 mill/c.mm 3.8 - 4.8
MCHC :* 31.4 g/dl 31.5 - 34.5
MPV :* 8.7 fl 9.0 - 13.0
Neutrophils - 62 % 40 - 80
Eosinophils 4-3 % 1-6
ABO And RhD Typing : A - positive
Poikilocytosis 5 *
Referred By : Quantum Corportae Health Pvt Ltd Ace Sen seme . Yeas. / Female
^([A-Za-z./\\-\\(\\) ]+|^[A-Za-z0-9/\\-\\(]+) +([0-9.\\-]+) *([a-zA-Z/%1 ]*) +([0-9./\\-= ]+)* *([A-Za-z/]*)
^([A-Za-z./\\-\\(\\=><) ]+|^[A-Za-z0-9/\\-\\(]+) *([0-9.\\*-]+)([a-zA-Z./% ]*) +([0-9.\\-= ]+)* *([A-Za-z/]*)';
my $regex = qr/^([A-Za-z./\-\(\=><) ]+:?\*?|^[A-Za-z./\-\(\=><)0-9 ]+:+?|^[A-Za-z0-9/\-\(]+)? *?(([0-9\*]+)(\.|\-)*([0-9\*]+)*)([a-zA-Z./% ]*) ?([0-9.\-= ]+)? ?(?![0-9]+)([a-zA-Z./% ]+)?$/mp;
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