如何用ruby中的正则表达式替换字符

如何在重复字母’a’基础上更换2次后,将字母’b’替换为’c’? 例如 :

ab => ab aab => aac aaab => aaab aaaab => aaaac aaaabaaabaab => aaacaabaac 

您应该检查aa组,然后检查b ,然后相应地替换捕获的组。

正则表达式: (?

说明:

(?检查是否存在奇数a 。 如果目前整场比赛失败。

((?:a{2})+)b捕获偶数个a后跟b 。 外部组被捕获并编号为\1

替换: \1c即首先捕获的组,然后是c

测试字符串:

 ab aab aaab aaaab aaaabaaabaab 

更换后:

 ab aac aaab aaaac aaaacaaabaac 

Regex101演示