http://www.perlmonks.org?node_id=369057


in reply to Re^2: non-exact regexp matches
in thread non-exact regexp matches

Ah, I see. (Also didn't realize that String::Approx doesn't use regexes)

So this is crazy, but it just might work: stick each letter of one string into one array, then each letter of the other string into the other array. Then use List::Compare to figure out how the two strings are different.

List::Compare is my favorite hammer these days. =)

Replies are listed 'Best First'.
Re^4: non-exact regexp matches
by vinforget (Beadle) on Jun 23, 2004 at 15:12 UTC
    cool. This seems like a generalized way to go about it. Hope the performance is ok. I need to compare a 27 character reg-exp to a 1 million character string ! vince
      Reply here when you do it, if you don't mind, I'm interested. I've only ever used List::Compare against arrays with a few thousand elements. Performance was quite acceptable under those conditions. .
        ok. Thanks again.
        Vince
      You are talking about regexes, but your example shows the most trivial regex one can image, namely one that doesn't contain any characters that are special. Do you want to match any possible regex, or are you just looking for matching strings? The latter is far, far more easier than the former - and the latter doesn't need the regex engine at all.

      Abigail

        Optimally, I want to match any regexp, but I am not sure if regexps in perl can handle this in a stable fashion. I've been using regexp to report all nested pattern matches with positions of matches using $-[0]:
        m/(regexp)(?{ print $-[0] )(?!)/;

        but everywhere I look most people say to stay away from this stuff because:
        1) it is not stable
        2) it may not be supported in newer versions of perl.
        So I'm not sure if I should take a more specific yet stable approach, or a generalisable yet potentialy unstable approach.