#!/usr/bin/perl -w use strict; use lib '.'; use Regexp::Approx 'fuzzy_qr'; use re 'eval'; while() { 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