$month = '(Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)? |Apr(?:il)?|May|Jun(?:e)? |Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)? |Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\s+'; $day = '([0-3]?[0-9])(?:th|st|nd|rd)?,?\s+'; $year = '([0-9]{2,4})'; #### if (( ($month, $day, $year) = (/$month$day$year/io) ) || ( ($day, $month, $year) = (/$day$month$year/io) ) ) { $year += 1900 if $year < 100; $month = substr($month, 1, 3); print "$day-$month-$year\n"; }