2012-08-02 77 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

相關問題