我有一个字符串输入,我希望在,
和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
是匹配的字符串,即a1
或0
,但不是它前面的1
或0
。Here is a good guide on lookahead and lookbehind