从Perl中的一行删除每个东西到特定的单词

时间:2012-08-02 15:07:12

标签: perl pattern-matching

我需要将Perl中的所有内容删除到特定单词。 假设我有这3行

Helicobacter Contig1
Helicobacter contig1
Helicobacter .Contig1

我想要contig1或Contig 1

我试过了

$test=s/^(.*?)^(contig|Contig)//g;

但它不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

删除第二个^

你的正则表达式应该是s/^(.*?)(?=contig|Contig)//g;

.*?是非贪婪的,所以它会尽快停止(即当它看到重叠群或重叠群时)。您还可以使用\i修饰符使匹配大小写不敏感,因此您不必检查两个不同的字符串。