python中的正则表达式

nit*_*nit 1 python

我有文本文件(seq.fasta),其中包含如下序列

M1

MPMILGYWNVRGLTHPIRMLLEYTDSSYDEKRYTMGDAPDFDRSQWLNEKFKLGLDFPNL
PYLIDGSHKITQSNAILRYLARKHHLDGETEEERIRADIVENQVMDTRMQLIMLCYNPDF
EKQKPEFLKTIPEKMKLYSEFLGKRPWFAGDKVTYVDFLAYDILDQYRMFEPKCLDAFPN
LRDFLARFEGLKKISAYMKSSRYIATPIFSKMAHWSNK
Run Code Online (Sandbox Code Playgroud)

我必须提取主题PXXP正好4个字符(XX可以是任何字符).

我试过以下代码:

import re

infile=open("seq.fasta",'r')

out=open("out.csv",'w')

for line in infile:

   line = line.strip("\n")

   if line.startswith('>'):

      name=line

   else:

      motif = re.compile(r"(\bP{2}P\b)")

      c = line.count('motif')

      print '%s:%s' %(name,c)

      out.write('%s:%s\n' %(name,c))
Run Code Online (Sandbox Code Playgroud)

但它找不到主题.

Arn*_*anc 5

试试这个:

 re.compile(r"(P..P)")
Run Code Online (Sandbox Code Playgroud)

. 意味着任何角色.

{2}意味着最后一个标记必须重复两次(在你的正则表达式中,这意味着PP.

\b 匹配单词边界