我需要从Perl中的所有行删除所有东西直到某个特定的单词。 假设我有这3个行从Perl中删除所有东西直到某个单词
Helicobacter Contig1
Helicobacter contig1
Helicobacter .Contig1
我想有contig1或群1
我已经试过
$test=s/^(.*?)^(contig|Contig)//g;
,但它无法正常工作。任何想法?
我需要从Perl中的所有行删除所有东西直到某个特定的单词。 假设我有这3个行从Perl中删除所有东西直到某个单词
Helicobacter Contig1
Helicobacter contig1
Helicobacter .Contig1
我想有contig1或群1
我已经试过
$test=s/^(.*?)^(contig|Contig)//g;
,但它无法正常工作。任何想法?
删除第二个^
您正则表达式应该是s/^(.*?)(?=contig|Contig)//g;
的.*?
是不贪婪,所以会尽快,因为它可以阻止(即当它看到重叠群重叠群或)。您还可以使用\i
修饰符来使匹配大小写不敏感,因此您不必检查两个不同的字符串。
它删除了“重叠群”,我想从行首开始删除每个东西,直到contig – shaq 2012-08-02 15:27:07
然后使用前视,查看编辑 – 2012-08-02 15:29:51
你不需要'g'修饰符;你只能在行首和[cC] ontig之间进行一次匹配。 – chepner 2012-08-02 16:14:41