Regex 是否可以使用单个正则表达式将字符数减少一个?

Regex 是否可以使用单个正则表达式将字符数减少一个?,regex,perl,Regex,Perl,我想将&替换为&,将&替换为空。连续的&不超过两个 目前我有: $m =~s/&&/££%££/g; $m =~s/&//g; $m =~s/££%££/&/g; 有更好的方法吗?试试这个正则表达式: $m =~ s/&(&?)/$1/g; 在线查看它的工作情况: 此版本还可用于2个以上的安培数: $m =~ s/&(&*)/$1/g; 在线查看它的工作情况:并且,如果您想将&s的数量一般减少一个,那就是s/&(&*)/$1

我想将
&
替换为
&
,将
&
替换为空。连续的
&
不超过两个

目前我有:

$m =~s/&&/££%££/g;
$m =~s/&//g;
$m =~s/££%££/&/g;

有更好的方法吗?

试试这个正则表达式:

$m =~ s/&(&?)/$1/g;
在线查看它的工作情况:


此版本还可用于2个以上的安培数:

$m =~ s/&(&*)/$1/g;

在线查看它的工作情况:

并且,如果您想将
&
s的数量一般减少一个,那就是
s/&(&*)/$1/g
。s/&(?!&)//g也会从任何数字中删除a&。