fiverivers has asked for the wisdom of the Perl Monks concerning the following question:
Please help me find out why the regex below does not match the full table name
I have a file with sql queries. I am trying to extract table names from the file.
sample of data in the file
update users set timezone='Europe/London' where uid not in (0); update field_data_field_location set field_location_value = NULL where + field_location_value='select'; update field_revision_field_location set field_location_value = NULL w +here field_location_value='select'; update field_data_field_profession set field_profession_value = NULL w +here field_profession_value = 'select'; update field_revision_field_profession set field_profession_value = NU +LL where field_profession_value = 'select';
The following code does not match the last character of the table name
while(<FILE>){ $line = $_; if ($line =~ m/^update\ (\w*)[^\s]/){ print $1."\n"; } }
output
user field_data_field_locatio field_revision_field_locatio field_data_field_professio field_revision_field_professio
working regex
while(<FILE>){ $line = $_; if ($line =~ m/^update\ (\w*)\ [^\s]/){ print $1."\n"; } }
correct output
users field_data_field_location field_revision_field_location field_data_field_profession field_revision_field_profession
I cannot understand why the first regex does not work. Thanks for your help.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: why is regex not matching final character?
by moritz (Cardinal) on May 07, 2012 at 08:10 UTC | |
by fiverivers (Novice) on May 07, 2012 at 08:19 UTC | |
by moritz (Cardinal) on May 07, 2012 at 08:32 UTC | |
by fiverivers (Novice) on May 07, 2012 at 08:44 UTC | |
Re: why is regex not matching final character?
by AnomalousMonk (Archbishop) on May 07, 2012 at 11:31 UTC | |
Re: why is regex not matching final character?
by Anonymous Monk on May 07, 2012 at 16:11 UTC |
Back to
Seekers of Perl Wisdom