我有以下正则表达式:
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($|-)
这基本上相当于你的第一个表达式,但在你的第一次表达式中,我看不出你的匹配中需要.*。