如何在Perl中替换连续且相同的字符?

Ton*_* Xu 3 regex string perl replace

我有一个类似的字符串 XXXXYYYYZZZYYZZZYYYY需要转换为 XXXXAAAYZZZAYZZZAAAY

$s =~ s/Y{2}+/AY/g;

这有2个问题,{2}+将YYYY转到AYAY;并且AY与YYYY(预期AAAY)的长度不同

如何在Perl中完成这项工作?

mob*_*mob 6

使用“先行”:

$s =~ s/Y(?=Y+)/A/g;
Run Code Online (Sandbox Code Playgroud)

(?=Y+)表示“后面跟着一个或多个Y字符”,因此Y后跟另一个Y字符的任何字符都将替换为A

来自的更多信息 perlretut