我需要從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