#!/usr/bin/perl use strict; use warnings; use Data::Dumper::Simple; # (text);(?:(float)[non-num]){4}; my $text = "asdf;12.34x23.45y34.56z45.67n"; my @matches = ($text =~ /([\d.]+\D)/g); print Dumper(@matches);