Regular expression for different date formats in Python

Vlastimil Brom vlastimil.brom at
Mon Nov 26 17:30:17 CET 2012

2012/11/26  <undesputed.hackerz at>:
> Hello Developers,
> I am a beginner in python and need help with writing a regular expression for date and time to be fetched from some html documents. In the following code I am walking through the html files in a folder called event and printing the headings with h1 tag using beautifulsoup. These html pages also contains different formats of date and time. I want to fetch and display this information as well. Different formats of date in these html documents are:
> 21 - 27 Nov 2012
> 1 Dec 2012
> 30 Nov - 2 Dec 2012
> 26 Nov 2012
> Can someone help me out with fetching these formats from these html documents ?
> Here is my code for walking through the files and fetching h1 from those html files:
> Code:
>     import re
>     import os
>     from bs4 import BeautifulSoup
>     for subdir, dirs, files in os.walk("/home/himanshu/event/"):
>         for fle in files:
>             path = os.path.join(subdir, fle)
>             soup = BeautifulSoup(open(path))
>             print (soup.h1.string)
>             #Date and Time detection
> --

the following pattern seems to match all of your examples,

(\d{1,2} )?(Nov|Dec)?( ?- )?(\d{1,2}) (Nov|Dec) (\d{4})

however, it doesn't look like very robust - of course, you have to add
the remaining months' abbreviations and check on the (parts of the)
HTML documents, you are interested in.


More information about the Python-list mailing list