regexp字符或带有白鹭的行尾

  • 本文关键字:白鹭 字符 regexp grep
  • 更新时间 :
  • 英文 :


我有以下正则表达式:

egrep '(chr1 .*n70$|chr1 .*n70-)' results/files/forbidden_variants

这与匹配

chr1 n70
chr1 n70-n79
chr1 n70-n79-n83
chr1 n70-n79
chr1 n70-n79-s15-s16
chr1 n70
chr1 n70-n91
chr1 n70

而且速度非常慢,因为我用不同的值替换了n70等id数百万次。

因此我想去掉OR。我写过:

egrep '(chr1 .*n70[-$])' results/files/forbidden_variants

但它不起作用,因为我没有将行尾与此命令匹配。输出如下:

chr1 n70-n79
chr1 n70-n79-n83
chr1 n70-n79
chr1 n70-n79-s15-s16
chr1 n70-n91

我在这里做错了什么?:)非常感谢。

只需在当前Regex:中添加一个+

egrep '(chr1 n70[-$]+)' results/files/forbidden_variants

为什么不简单地使用

chr1 n70

你可以使用OR

chr1 n70($|-)

这基本上相当于你的第一个表达式,但在你的第一次表达式中,我看不出你的匹配中需要.*。

最新更新