my $TEXT= do { local $/; }; $TEXT =~ /abc/g; $TEXT =~ s/\G(\D+)([\d\.\-]*)/$1GOVALUE/g; print $TEXT; __END__ Some 01.35 numbers 019999 not to 01.055555 replace abc(" 0.123511, 0.074997, 0.103143, 0.153955, 0.260586",\ " 0.068394, 0.082183, 0.110329, 0.161142, 0.267773",\ " 0.081887, 0.095677, 0.123822, 0.174635, 0.281266",\ " 0.111534, 0.125324, 0.153470, 0.204282, 0.310914",\ " 0.165731, 0.179521, 0.207666, 0.258479, 0.365110"); #### Some 01.35 numbers 019999 not to 01.055555 replace abc(" GOVALUE, GOVALUE, GOVALUE, GOVALUE, GOVALUE",\ " GOVALUE, GOVALUE, GOVALUE, GOVALUE, GOVALUE",\ " GOVALUE, GOVALUE, GOVALUE, GOVALUE, GOVALUE",\ " GOVALUE, GOVALUE, GOVALUE, GOVALUE, GOVALUE",\ " GOVALUE, GOVALUE, GOVALUE, GOVALUE, GOVALUE"); GOVALUE