in reply to In search of an efficient query abstractor
I think part of the inefficiency is that you're running multiple regular expressions over your code. You could roll all these regular expressions into one regular expression, at least that's easy as long as the first character of any candidate match is different between all regular expressions:
my $re_num = qr{ [+-]? (?: \d+ (?:[.]\d*)? |[.]\d+ ) (?:e[+-]?\d+)? \b }x; # Float/real into N my $re_hexbin = qr{\b0(?:x[0-9a-f]+|b[01]+)\b}; # Hex/bin into N my $num_combined = qr{ $re_num | $re_hexbin }; $query =~ s/$num_combined/N/g;
If you want to replace both, strings and numbers in one go, you'll have to combine the regular expressions as above but capture into (say) $1 for numbers and into $2 for strings and then replace with S or N whether $1 or $2 is defined.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: In search of an efficient query abstractor
by xaprb (Scribe) on Dec 07, 2008 at 15:38 UTC | |
by Corion (Patriarch) on Dec 07, 2008 at 15:48 UTC | |
by gone2015 (Deacon) on Dec 07, 2008 at 20:44 UTC | |
by xaprb (Scribe) on Dec 07, 2008 at 21:07 UTC |