>________________________________________ >Von: pgsql-general-owner@xxxxxxxxxxxxxx [pgsql-general-owner@xxxxxxxxxxxxxx]" im Auftrag von "Mike [mike@xxxxxxxxxxxx] >Gesendet: Mittwoch, 28. Oktober 2015 20:04 >An: pgsql-general@xxxxxxxxxxxxxx >Betreff: regexp_replace to remove sql comments > >Hi, > >I am trying to clean up the query field returned by the >pg_stat_statements extension and remove all comments. > >Some of the queries in the query field contain comments like '-- some >comment' and also '/* c style comments */' > >I have managed to strip off the '--' comments and also white space but >after trying numerous regex for this via google but I am stuck. > >WITH to_clean AS ( > SELECT > regexp_replace( > regexp_replace(trim(query), '--[^\r\n]*', '') --clear up >comments like this one <-- this is ok > , '\s+', ' ', 'g') as q --clear up white space <-- this is ok > FROM public.pg_stat_statements > WHERE dbid IN (SELECT oid FROM pg_database WHERE datname = >current_database()) >) > >SELECT regexp_replace(q,'/\*.*\*/','') as q /* strip off comments like >this */ <-- cannot get a regex to do this >FROM to_clean ORDER BY q Hi, Does this help ? select regexp_replace(' aaa /* x y z */ foo', '\/\*.+\*\/','','g'): regards, Marc Mamin > >Im now thinking it may be better to do in a pgsql function as I think if >the comments are in queries then they need to be ignored. > >Has anyone done anything like this? > >Thanks, > >Mike. > > > >-- >Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) >To make changes to your subscription: >http://www.postgresql.org/mailpref/pgsql-general > -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general