#!/usr/bin/perl use warnings; use strict; my $string= "20180418103606_G201_ID1111_DT2222.csv"; my @strings = $string =~ /(.{1,4})(.{1,2})(.{1,2})(.{1,2})(.{1,2})(.{1,2})_(.{1,4})_(.{1,6})_(.{1,6}).*/; foreach(@strings) { print "$_\n"; } my $fileDate = $strings[0] . "/" . $strings[1] . "/" . $strings[2];; my $fileTime = $strings[3] . ":" . $strings[4] . ":" . $strings[5]; my $unittype = $strings[6]; my $unit = $strings[7]; print $fileDate . "\n"; print $fileTime . "\n"; print $unittype . "\n"; print $unit . "\n";