in reply to Regexp::Approx - Use fuzzy regular expressions
It seems that your "fuzzy" regex isn't much different from just using dot and the length of the target. That is:
#!/usr/bin/perl -w use strict; use lib '.'; use Regexp::Approx 'fuzzy_qr'; use re 'eval'; while(<DATA>) { chomp; print "Using '$_' as fuzzy component:\n"; my $fuzzy_part = fuzzy_qr( $_ ); my $rx = qr/((?:$fuzzy_part\s)?\w+\d)$/; if ( "5678 DELAWARE AVENUE AOT 123" =~ $rx ) { print "\tRX Match: $1\n"; } my $really_fuzzy = '.{' . length($_) . '}'; my $rfx = qr/((?:$really_fuzzy\s)?\w+\d)$/; if ( "5678 DELAWARE AVENUE AOT 123" =~ $rfx ) { print "\tRFX Match: $1\n"; } } __END__ APT XXX ^%@#!( fuzzy matches anything? x # output: Using 'APT' as fuzzy component: RX Match: AOT 123 RFX Match: AOT 123 Using 'XXX' as fuzzy component: RX Match: AOT 123 RFX Match: AOT 123 Using '^%@#!(' as fuzzy component: RX Match: UE AOT 123 RFX Match: UE AOT 123 Using 'fuzzy matches anything?' as fuzzy component: RX Match: 678 DELAWARE AVENUE AOT 123 RFX Match: 678 DELAWARE AVENUE AOT 123 Using 'x' as fuzzy component: RX Match: T 123 RFX Match: T 123
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Regexp::Approx - Use fuzzy regular expressions
by diotalevi (Canon) on Nov 12, 2003 at 14:32 UTC | |
by Anonymous Monk on Nov 12, 2003 at 15:36 UTC |