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.
In reply to why is regex not matching final character? by fiverivers
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |