【问题标题】:remove every thing from a line in Perl up to a specific word从 Perl 中的一行中删除所有内容,直到一个特定的单词
【发布时间】:2012-08-02 15:07:11
【问题描述】:

我需要从 Perl 中的一行中删除所有内容,直到一个特定的单词。 假设我有这 3 行

Helicobacter Contig1
Helicobacter contig1
Helicobacter .Contig1

我想要 contig1 或 Contig 1

我试过了

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

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

【问题讨论】:

  • 你不需要'g'修饰符;您只能在行首和 [cC]ontig 之间匹配所有内容。

标签: perl pattern-matching


【解决方案1】:

删除第二个^

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

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

【讨论】:

  • 它删除了“contig”,我想删除从队列开头到 contig 的所有内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-27
  • 1970-01-01
  • 2021-06-27
  • 2014-11-17
相关资源
最近更新 更多