【发布时间】:2016-04-14 07:01:08
【问题描述】:
我想测试一个文件是否对正则表达式有效。
file_string = >sp|Q1ABCD|003R_FRG3G(438aa)Uncharacterizedprotein1A.[virus1(isolateABCD)(AB-1)]MLFLGTIGLAVVVGGLMAYGYYYGHHDE2-9:ArpllGKT>sp|Q2DBAC|004R_FRG3G(60aa)Uncharacterizedprotein1B.[virus2(isolateBGF)(AB-2)]NAKYDTDQGVGRMLFLGTIGLAVVVGGLMAYGYYYDGKTPSSGTSFHTASPSFSSRYRY33-40:GyyydGKT50-100:GyyydGKT>sp.......
与 >sp.... 我的意思是这样。
pattern = '^(>sp\\|[PQ].{5,7}\\|.+\\(\d+aa\\).*\\[.*\\][ACDEFGHIKLMNPQRSTVWY]*(\d+-\d+:.+)+)+$'
import re
ant = re.match(pattern,file_string)
但我使用的正则表达式总是匹配。这是不正确的。我该如何解决?
【问题讨论】:
-
“不停地说” - 不停地说什么?还有为什么
\\在|之前?你想逃避管道符号而不是斜线吗? -
“这个结构” - 哪个结构?请编辑您的问题,使其尽可能清晰
-
我很抱歉朦胧,你是对的@Torxed,我想逃离管道
-
嗯,我理解这个问题,但问题中没有实际要求。我们只能猜测它们。解决方案是将所有点匹配子模式替换为更具限制性的子模式。
标签: python regex python-3.x