my $text = "[Part1,Part1_SW,Part2],[Part3,Part3_RF],[Part4, Part5],[Part6]"; my @data = map { s/[^,]+(_SW|_RF)//g; s/^,|,$//g; s/,,/,/g; $_ } $text =~ m{\[([^\]]+)\]}g; print join "\n", @data, ''