Thread: Prob with regexp
I think there is a prob with regexp, which is comparing one less character as it should. Below is an example. Result is that last character is omitted ! Ph.R. postgres=# select * from pg_database where datname ~ 'ibd01*';datname | datdba | encoding | datpath ---------+--------+----------+---------ibd00_8 | 505 | 0 | ibd00_8ibd00_1 | 505 | 0 | ibd00_1ibd00_2| 505 | 0 | ibd00_2ibd00_3 | 505 | 0 | ibd00_3ibd00_4 | 505 | 0 | ibd00_4ibd00_5| 505 | 0 | ibd00_5ibd00_6 | 505 | 0 | ibd00_6ibd00_7 | 505 | 0 | ibd00_7ibd00_9| 505 | 0 | ibd00_9ibd01_1 | 505 | 0 | ibd01_1ibd01_2 | 505 | 0 | ibd01_2ibd01_3| 505 | 0 | ibd01_3ibd01_4 | 505 | 0 | ibd01_4ibd01_5 | 505 | 0 | ibd01_5 (14 rows) postgres=# select * from pg_database where datname ~ 'ibd01_*';datname | datdba | encoding | datpath ---------+--------+----------+---------ibd01_1 | 505 | 0 | ibd01_1ibd01_2 | 505 | 0 | ibd01_2ibd01_3| 505 | 0 | ibd01_3ibd01_4 | 505 | 0 | ibd01_4ibd01_5 | 505 | 0 | ibd01_5 (5 rows)
Philippe Rochat <mlrochat@lbdsun.epfl.ch> writes: > I think there is a prob with regexp, which is comparing one less > character as it should. Below is an example. Result is that last > character is omitted ! Possibly there is a problem with your understanding of regexp patterns ... but all those matches look valid to me. See http://www.postgresql.org/devel-corner/docs/postgres/functions-matching.html for more info. regards, tom lane
Philippe Rochat writes: > I think there is a prob with regexp, which is comparing one less > character as it should. Below is an example. Result is that last > character is omitted ! A '*' means "zero or more of the preceeding character". You probably want a '+'. > > Ph.R. > > postgres=# select * from pg_database where datname ~ 'ibd01*'; > datname | datdba | encoding | datpath > ---------+--------+----------+--------- > ibd00_8 | 505 | 0 | ibd00_8 > ibd00_1 | 505 | 0 | ibd00_1 > ibd00_2 | 505 | 0 | ibd00_2 > ibd00_3 | 505 | 0 | ibd00_3 > ibd00_4 | 505 | 0 | ibd00_4 > ibd00_5 | 505 | 0 | ibd00_5 > ibd00_6 | 505 | 0 | ibd00_6 > ibd00_7 | 505 | 0 | ibd00_7 > ibd00_9 | 505 | 0 | ibd00_9 > ibd01_1 | 505 | 0 | ibd01_1 > ibd01_2 | 505 | 0 | ibd01_2 > ibd01_3 | 505 | 0 | ibd01_3 > ibd01_4 | 505 | 0 | ibd01_4 > ibd01_5 | 505 | 0 | ibd01_5 > (14 rows) > > postgres=# select * from pg_database where datname ~ 'ibd01_*'; > datname | datdba | encoding | datpath > ---------+--------+----------+--------- > ibd01_1 | 505 | 0 | ibd01_1 > ibd01_2 | 505 | 0 | ibd01_2 > ibd01_3 | 505 | 0 | ibd01_3 > ibd01_4 | 505 | 0 | ibd01_4 > ibd01_5 | 505 | 0 | ibd01_5 > (5 rows) > -- Peter Eisentraut peter_e@gmx.net http://yi.org/peter-e/