我有一个字符串输入,我希望在,00之间插入11,如下例所示。

input1 = '00011010100011101'
desired_result1 = '0,0,01,101010,0,01,1,101'

input2 = '11010111101010000001011'
desired_result2 = '1,10101,1,1,101010,0,0,0,0,0101,1'

我试过下面的方法,但没有给我想要的。
input1.gsub(/00/,'0,0').gsub(/11/,'1,1')
=> "0,001,101010,001,1101"

我很感激你的意见。
注:此问题的答案稍后可在没有学分的情况下使用here

最佳答案

一种方法是使用lookbehind((?<=...))。这是一个未捕获的零宽度断言,因此您可以匹配以1开头的1或以0开头的0:

input.gsub(/(?<=1)1|(?<=0)0/, ',\0')

\0是匹配的字符串,即a10,但不是它前面的10
Here is a good guide on lookahead and lookbehind

08-24 15:46