http://qs1969.pair.com?node_id=1108199


in reply to Re: Regular expression for a comma separated string
in thread Regular expression for a comma separated string

It doesn't have to be. I didn't mention earlier, I did try to break it down but with no success.
/^(?=[ACGT]{1,4},[ACGT]{1,4}$).*$/ && /^(?!.*(.).*\1.*,).*$/ && /^(?!,.*(.).*\1).*$/

Replies are listed 'Best First'.
Re^3: Regular expression for a comma separated string
by Anonymous Monk on Nov 24, 2014 at 00:43 UTC
    Well then, I'd do it like that
    my @lst = qw( A,G AG,CT TC,CA GAT,CGA CGAT,TG ,G ACGT X,A AA,G AC,GGC ATGA,TGG ATCXG,AAC ATA,TG GTA,YC); for (@lst) { my $good = do { m/^ [ATCG]+ , [ATCG]+ $/x and not grep m/(.) .* \1/x, split ','; }; print $_, $good ? ' good' : ' bad', "\n"; }
    Output:
    A,G good AG,CT good TC,CA good GAT,CGA good CGAT,TG good ,G bad ACGT bad X,A bad AA,G bad AC,GGC bad ATGA,TGG bad ATCXG,AAC bad ATA,TG bad GTA,YC bad