给定这两个文本:

$mir1 = 'microRNA-9a';
$mir2 =  'microRNA10a';
$mir3 =  'microrna3a';

我想将其更改为:
miR-9a
miR-10a
miR-3a

原则上,我想将所有变体microRNA部分替换为miR-是否有单个正则表达式可以做到这一点?

我尝试过此方法,但不确定如何捕获数字部分。
my $mirnew = $mir =~ s/microRNA(\d+)/miR-/gi;

最佳答案

您需要捕获单词,而不是连字符后的数字。要反向引用以捕获组,请使用$1:

s/microRNA-?(\w+)/miR-$1/gi;

10-04 13:19