in reply to Regex only the longes Value , and possible speedup Problem

It's pretty hard to give a faster answer when we don't know exactly what you are doing currently (note that the code should compile and run!). Perhaps you could provide just enough of your code to demonstrate the problem and just enought data (in a __DATA__ section) to illustrate the matching issues.

A few other things that it may help to know are:

  1. does the (5025) element set change from run to run?
  2. do the match strings change from run to run?
  3. how many matching strings are there?
  4. what is the minimum likely match length?
  5. what is the maximum likely match length?
  6. are you looking for a single best match or multiple matches?

DWIM is Perl's answer to Gödel
  • Comment on Re: Regex only the longes Value , and possible speedup Problem

Replies are listed 'Best First'.
Re^2: Regex only the longes Value , and possible speedup Problem
by ultibuzz (Monk) on Nov 14, 2006 at 09:50 UTC
    hi grandfather,

    1. normaly not but it can happen so i load these elements from a file and read it into an array
    2. yes they do everytime
    3. can be 1 can be 500000
    4. the minnimum matching is 4 numbers , the maximum i don't know but i never see everything larger then 14 so 20 shoud be the max
    6. im loking for a single best match

    here is some sample data for the array
    __Array_DATA__ 4930 49201 49202 49203 492041 492043 492045 492051 492052 492053 492054 492056 492058 492064 492065 492066 49208 49209 492102 492103 492104

    here are some strings
    4920911223344 492065577883667 49206656672

    the result for these strings shoud look like
    49209;11223344 492065;577883667 492066;56672

    finaly my testing code wich is far from greatness ;)
    use strict; use warnings; use File::Spec; open(my $fh_in, '<', 'Script\\onkz.txt') or die("open failed: $!"); open(INFILE, '<', 'data.txt') or die("open failed: $!"); my @ONKZ = <$fh_in>; my $filterregex = join('|',@ONKZ); while (<INFILE>) { if($_ =~ /^($filterregex)/){ print "$&;$'\n"; } }