Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: Slow Regex - How to Optimize

by rnahi (Curate)
on Aug 30, 2005 at 21:56 UTC ( #487962=note: print w/replies, xml ) Need Help??

in reply to Slow Regex - How to Optimize

I would use a different approach, i.e. make a single string from your @sub_code and apply the search for each key just once.

#untested my $code = join("", @sub_code); foreach my $sub ( keys %SUBS ) { while ( $code =~ /\b$sub\b\(/g ) { push( @subs, $sub ) ; } }

Notice that your code has a subtle bug. If the same routine is used twice in oone line, you'll get it only once. E.g.:  sqrt(x) + sqrt(y)

BTW, what is that $key in your code?

Replies are listed 'Best First'.
Re^2: Slow Regex - How to Optimize
by Anonymous Monk on Aug 30, 2005 at 23:16 UTC
    Notice that your code has a subtle bug.
    Even if he is running the code through CPP first (to strip out comments, expand macros, rejoin lines), he still has plenty of corner cases to worry about (strings, fucntion pointers, etc)...
    #define p printf int mai\ n/*this is a comment: main()*/(int argc, char **argv) { int (*f)(int, char **) = &main; p("hello world: main()\n"); if(argc>0) f((argc-1),argv); }
      Oh, and don't forget that [^a-zA-Z] matches "(" and that C identifiers can have digits and underscores...

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://487962]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (4)
As of 2017-05-28 04:12 GMT
Find Nodes?
    Voting Booth?