#format python """ Python RegularExpression example and answer of http://bioinfo.sarang.net/technote/read.cgi?board=QnAboard&nnew=2&y_number=199 """ import unittest, re instr=">consensus:MG-U74Av2:99494_at; gb|AJ001700; Cluster Incl AJ001700:Mus musculus mRNA for neuroserpin /cds=(97,1329) /gb=AJ001700 /gi=2462594 /ug=Mm.41560 /len=2944" ug="Mm\.\d+" def getUg(anInStr): m = re.compile(ug) p = m.search(anInStr) if p: return p.group() def getUg2(anInStr): return re.search(ug,anInStr).group() class ReTest(unittest.TestCase): def testGetUg(self): self.assertEquals('Mm.41560', getUg(instr)) def testGetUg2(self): self.assertEquals('Mm.41560', getUg2(instr)) #if there are many matching groups in one string def getTraceIds(besid): url_bes="http://xx.xx.xx/cgi-bin/Projects/S_scrofa/WebFPCreport.cgi?mode=wfcreport&name=%s" p_tid = re.compile(r'\?traceid=(\w+)\"') result=list() doc=urllib2.urlopen(url_bes%besid).read() while True: m=p_tid.search(doc) if not m: break result.append(m.group(1)) doc=doc[m.span()[1]:] return result if __name__=='__main__': unittest.main(argv=('','-v'))