http://www.perlmonks.org?node_id=564643


in reply to Regexp: How to match in middle but not the ends?

Perhaps the simplest solution is a two-part regex sequence:
$_ = '---LL--C----LCSH-------CSHL-------LCSLH-------LCCHLSHCL----'; while (m/([A-Z]+)/g) { ($s = $1) =~ s/^L+|L+$//g; print "$s\n" if $s; }
EDIT: Oops, missed that.

Replies are listed 'Best First'.
Re^2: Regexp: How to match in middle but not the ends?
by ikegami (Patriarch) on Jul 30, 2006 at 18:41 UTC

    It incorectly matches "C" in "-C-". (Two chars minimum.)

    $_ = '---LL--C----LCSH-------CSHL-------LCSLH-------LCCHLSHCL----'; while (m/([A-Z]+)/g) { ($s = $1) =~ s/^L+|L+$//g; print "$s\n" if length $s >= 2; }