早上好家伙,
我有以下代码:
$line =~ s/gene_id "([A-Za-z0-9:\-._]*_[oO])([_.])[0-9]*";/gene_id "$1$21";/g;
我在$ 1和$ 2上遇到问题。我希望输出是$1$21
,换言之,$1
和$2
和1
,全部在一起。但是,Perl看到的$21
不是$2
和1
。我将如何避免这个问题?
谢谢。
在变量标识符周围使用花括号将其与周围的文本隔离开, ${2}
$line =~ s/gene_id "([A-Za-z0-9:\-._]*_[oO])([_.])[0-9]*";/gene_id "$1${2}1";/g;
另外,由于您将所有其他文本保持不变,因此仅可以\K
用来修改其后的内容。更不用说利用\w
以减少您的第一个角色类别:
$line =~ s/gene_id "[\w:\-.]*_[oO][_.]\K[0-9]*";/1";/g;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句