in reply to Help required on understanding regular expressions
Update:use strict; use Data::Dumper; my %hash=(); my $str="Test Tester Testing [Feb 18: 28_10_10] Test"; my $reg='(\w+) (\w+) (\w+) \[([\w\W]+)\] (.*?)'; my ($fname, $mname, $lname, $date) = $str =~ /$reg/is; if (defined ($date)) { $hash{fname}=$fname; $hash{mname}=$mname; $hash{lname}=$lname; $hash{date} =$date; } print Dumper \%hash; __END__ $VAR1 = { 'date' => 'Feb 18: 28_10_10', 'lname' => 'Testing', 'mname' => 'Tester', 'fname' => 'Test' };
use strict; use Data::Dumper; my %hash; my $str="Test Tester Testing [Feb 18: 28_10_10] TestXXX"; my $reg='(?<fname>\w+) (?<mname>\w+) (?<lname>\w+) \[(?<date>[\w\W]+)\ +]'; if ($str =~ /$reg/i) { %hash = %+; } print Dumper \%hash; __END__ $VAR1 = { 'lname' => 'Testing', 'date' => 'Feb 18: 28_10_10', 'fname' => 'Test', 'mname' => 'Tester' };
|
|---|