Skip to main content
 首页 » 编程设计

python之python中的正则表达式

2025年05月04日23bhlsheji

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

M1 
 
MPMILGYWNVRGLTHPIRMLLEYTDSSYDEKRYTMGDAPDFDRSQWLNEKFKLGLDFPNL 
PYLIDGSHKITQSNAILRYLARKHHLDGETEEERIRADIVENQVMDTRMQLIMLCYNPDF 
EKQKPEFLKTIPEKMKLYSEFLGKRPWFAGDKVTYVDFLAYDILDQYRMFEPKCLDAFPN 
LRDFLARFEGLKKISAYMKSSRYIATPIFSKMAHWSNK 

我必须准确提取 4 个字符的主题 PXXP(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)) 

但它没有找到主题。

请您参考如下方法:

试试这个:

 re.compile(r"(P..P)") 

.表示任意字符。

{2} 表示最后一个标记必须重复两次(在您的正则表达式中,这表示 PP。

\b 匹配单词边界