#!/usr/bin/perl use strict; use warnings; my $timeformat = "*%H:%M:%S%% >"; # Example. my %replacements = ( '%' => '\%', 'a' => '[[:alpha:]]+', 'H' => '\d{2}', 'M' => '\d{2}', 'S' => '\d{2}' ); $timeformat = quotemeta($timeformat); $timeformat =~ s/\\\%\\?(.)/$replacements{$1}/eg; print ("The regular expression is: $timeformat\n"); #### 09:12: 5:14:29-!- {more garbage goes here} 09:12: 5:14:37 09:12: 5:14:37 #### 2008-12-12 00:39 * {more stuff here} 2008-12-12 01:17 < {data here} 2008-12-12 01:30 2008-12-12 01:31 #### (\d{2})(\d{2})([\d\s]\d)(\d{2})(\d{2}) (\d{4})\-(\d{2})\-(\d{2})\ (\d{2})\:(\d{2})\