in reply to Re^3: Regex: Identifying comments
in thread Regex: Identifying comments
create table foo( --tabel foo bar text, --fld name boo text --again );
mmh... this is an interesting example, Yes. Perfectly legitim third type of comments, and difficult to debug with a regex... maybe you can profit that the fact that the type of data are limited with something like:
m/(\(|text|int|integer|char \(\d+\)),*\s*--(.*)$/
select '--foo';This is not a very probable situation, but certainly is possible too. In any case this false comment is not after a semicolon, nor at the beginning of the line or inside a table, so if there are a ^\s*select in the same line you probably could safely ignore it. But then you could have something like this:
select field from mytable where field = 'text, --foo important information here about to be lost';The safest actitude (although maybe a little paranoic) should be to isolate and examinate personally any case so special, the idea is: "if you found two - after a ' or a " and before a ";" in a line having the string "select" I want to see it personally"
You can improve your regex if you check previously for troublesome data:
select * from mitable where field1 like '%--%' or field2 like '%--%' or field3 like '%--%'... etc ;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Regex: Identifying comments
by remiah (Hermit) on Aug 31, 2012 at 05:37 UTC | |
by pvaldes (Chaplain) on Aug 31, 2012 at 15:32 UTC | |
by hbm (Hermit) on Sep 01, 2012 at 14:49 UTC | |
by Anonymous Monk on Sep 01, 2012 at 15:38 UTC |