#!/usr/bin/perl -w use strict; use Regexp::Common qw(time); while () { print if ($_ =~ $RE{time}{strftime}{-pat => '((%B|%b) %d|%d-%b|%m-%d)[\s\-,]+%Y'}); } __DATA__ Sep 29 2005 some stuff Jun 30, 2003 some more stuff December 15 2005 not a date December 31, 2004 06-Dec-2005 10-19-2005