in reply to match if last char and first char are different excluding certain chars

Ignoring your requirements and just looking at your example, I derive a different set of rules:
  1. Treat an "N" as if it was a digit
  2. If there's a group of letters (minus "N") followed by a digit (or "N") somewhere down the road, then put a underscore after the first letter.
In code:
#! perl -wl my $string = '423RY75Y69827EC67592C78657N965R345U299M'; my $correct = '423R_Y75Y_69827E_C67592C_78657N965R_345U_299M'; $string =~ s/([A-MO-Z])([A-MO-Z]*[\dN]+)/$1_$2/g; print $string eq $correct' ? 'OK' : 'NOT OK';
This prints:
OK

Are you sure you've got your requirements right?

  • Comment on Re: match if last char and first char are different excluding certain chars
  • Download Code