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

标签 regex string perl replace

我有一个字符串 XXXXYYYYZZZYYZZZYYYY 需要转换成 XXXXAAAYZZZAYZZZAAAY

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

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

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

最佳答案

使用“前瞻”:

$s =~ s/Y(?=Y+)/A/g;

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

More info from perlretut

关于regex - 如何在 Perl 中替换连续且相同的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55712553/

相关文章:

javascript - 如何使用 Javascript 从字符串中间提取文本?

string - 去意外的字符串文字

regex - 负前瞻正则表达式

perl - Perl 中的嵌套解引用箭头 : to omit or not to omit?

regex - RewriteRule : ^ vs ^(. *)$ 与 ^.*$ 有区别吗?

regex - 如何使用Sublime文本中的Regex选择第二个和第三个逗号之间的特定内容?

python - 在Python中精确匹配字符串

ios - 为什么从 UITextField 输入的字符串中四舍五入到较低的整数?

perl - 我应该为 Perl GUI 使用 Perl/Tk、Tcl::Tk 还是 Tkx?

javascript - AngularJS 四分之三验证