I think you can do this: a=[] b=redata.split('::') for e in b: if e.find('@') != -1: a.append(e.split('@')[1])
list a includes all the domain 在 2012年4月9日 上午5:26,Wayne Werner <wa...@waynewerner.com>写道: > 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::eax...@gstwyysnbd.gov::**1578951801-6-10 Sat >> Jul 31 15:17:39 1993::rz...@wgxvhx.com::**744121059-5-6 Mon Sep 21 >> 20:22:37 >> 1987::ttw...@rpybrct.edu::**559243357-6-7 Fri Aug 2 07:15:23 >> 1991::t...@mgfyitsks.net::**681106523-4-9 Mon Mar 18 19:59:47 >> 2024::dgz...@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 > > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor > > -- twitter:@zybest <https://twitter.com/#!/zybest> 新浪微博:@爱子悦 <http://www.weibo.com/zybest> 在openshift上搭建wordpress:http://blog-mking.rhcloud.com/
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor