in reply to Re^2: regex CA to California
in thread regex CA to California

Yes, good points which also occurred to me in the sleepless wee small hours. Just goes to show that you shouln't post when over-tired :-(

Slightly more robust, given the assumtion that the state abbreviation is always followed by a 5-digit ZIP code.

use strict; use warnings; my %states = ( CA => q{California}, MA => q{Massachusetts}, IL => q{Illinois}, PA => q{Pennsylvania}, MI => q{Michigan}, NJ => q{New Jersey}, IN => q{Indiana}, ); my $rxStateAbbrev = do { local $" = q{|}; qr{(?x) \b ( @{ [ keys %states ] } ) \b (?= \s+ \d{5} ) }; }; while ( <DATA> ) { s{ $rxStateAbbrev }{ $states{ $1 } }x; print; } __END__ Tommy Savage:408-724-0140: 12 2 2 Oxbow Court, Sunnyvale, CA 94087: 5/ +19/66: 34200 Lesle Kerstin: 408-456-123 4: 4 Harvard Square, Boston, MA 02133: 4/22 +/62: 52600 JonDeLoach: 408-253-3 122: 12 3 Park St. , San Jose, CA 94086: 7/25/53 +: 85100 Ephram Hardy:293-259-5395: 2 3 5 Carlton Lane, Joliet, IL 73858: 8/12/ +20: 56700 etty Boop: 245-836-83 57: 63 5 Cutesy Lane, Hollywood, CA 91464: 6/23/ +23: 14500 Wilhelm Kopf:846-836-2837 : 693 7 Ware Road, Milton, PA 93756: 9/21/46 +: 43500 Norma Corder:397-857 -2735: 74 Pine Street, Dearborn, MI 23874: 3/28/4 +5: 245700 James Ikeda: 834-938-8376: 2 3 445 Aster Ave. , Allentown, NJ 83745: 1 +2/1/38: 45000 Lori Gortz: 327-832-5728: 3 465 Mirlo Street, Peabody, MA 34756: 10/2/ +65: 35200 Barbara Kerz:385-573 -8326: 83 2 Ponce Drive, Gary, IN 83756: 12/15/46 +: 268500

Cheers,

JohnGG