[Tutor] regex question

Wayne Werner wayne at waynewerner.com
Sun Apr 8 23:26:45 CEST 2012


On Fri, 6 Apr 2012, Khalid Al-Ghamdi wrote:

> hi all,
> I'm trying to extract the domain in the following string. Why doesn't my pattern (patt) work:
> 
> >>> redata
> 'Tue Jan 14 00:43:21 2020::eaximi at gstwyysnbd.gov::1578951801-6-10 Sat Jul 31 15:17:39 1993::rzppg at wgxvhx.com::744121059-5-6 Mon Sep 21 20:22:37
> 1987::ttwqrf at rpybrct.edu::559243357-6-7 Fri Aug  2 07:15:23 1991::tjyp at mgfyitsks.net::681106523-4-9 Mon Mar 18 19:59:47 2024::dgzxmb at fhyykji.org::1710781187-6-7 '
> >>> patt=r'\w+\.\w{3}(?<=@)'
> >>> re.findall(patt,redata)
> []
> 
> This pattern works but the first should, too. shouldn't it?

The all too familiar quote looks like it applies here: "Often programmers, 
when faced with a problem, think 'Aha! I'll use a regex!'. Now you have 
two problems."

It looks like you could easily split this string with redata.split('::') 
and then look at every second element in the list and split *that* element 
on the last '.' in the string.

With data as well-formed as this, regex is probably overkill.

HTH,
Wayne


More information about the Tutor mailing list