in reply to Finding a _Similar_ Substring? (Fuzzy Searching?)
Depending upon how loose you want the criteria to be, you might get away with something like this.
my $term = 'P100'; ## my $re = qr[@{[ join '\W*', split '', $term ]}]; # Improved slightl +y. my $re = qr[@{[ join '\W*', map "\Q$_\E", split '', $term ]}]x; for( 'P100', 'P-100', 'P 100', 'P1 00', 'the P 100 is very similar in style to the P-101 & P102.'. 'The P-100 is a generation behind the P1000' ) { print "Matched $1" while m[\b($re)\b]g; };; Matched P100 Matched P-100 Matched P 100 Matched P1 00 Matched P 100 Matched P-100
You could also add /i if you want case insensitivity.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Finding a _Similar_ Substring? (Fuzzy Searching?)
by rjahrman (Scribe) on May 21, 2004 at 04:03 UTC |