Python Regex Newbie- matching substrings

Thomas Heller theller at python.net
Thu Jun 12 10:35:43 CEST 2003


danieljng at yahoo.com (Daniel) writes:

> Hi,
> 
> I would like my regex to detect that a month (any month) is in the
> following line, returning the index of the start of the match:
> 
> Jun 05 14:40:26 2003 .....
> 
> 
> So far, I've tried:
> 
>   months       = re.compile('(Jan)')
>   searchResult = months.search('abcJan')
>   print searchResult.start()
> 
> 
> -Which works for just 'Jan' of course, and it correctly prints '3'. 
> 
> 
> How do I get it to work for all months? 
> 
> 
> 
> I tried:
> 
>   months       = re.compile('[(Jan)(Feb)(Mar)]+')
> 
> 
> -but that regex is too 'greedy' ie. matches too easily- I think it
> matches the individual letters in each of Jan, Feb, Mar instead.

IMO you should use
  months = re.compile("Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec")
instead.

Thomas




More information about the Python-list mailing list