2012-08-02 57 views
0

我需要从Perl中的所有行删除所有东西直到某个特定的单词。 假设我有这3个行从Perl中删除所有东西直到某个单词

Helicobacter Contig1 
Helicobacter contig1 
Helicobacter .Contig1 

我想有contig1或群1

我已经试过

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

,但它无法正常工作。任何想法?

+1

你不需要'g'修饰符;你只能在行首和[cC] ontig之间进行一次匹配。 – chepner 2012-08-02 16:14:41

回答

3

删除第二个^

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

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

+0

它删除了“重叠群”,我想从行首开始删除每个东西,直到contig – shaq 2012-08-02 15:27:07

+0

然后使用前视,查看编辑 – 2012-08-02 15:29:51

相关问题