我有一个字符串输入,我想插入,之间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'
Run Code Online (Sandbox Code Playgroud)
我试过以下但它不能给我我想要的东西.
input1.gsub(/00/,'0,0').gsub(/11/,'1,1')
=> "0,001,101010,001,1101"
Run Code Online (Sandbox Code Playgroud)
我很感激任何投入.
注意此问题的答案可能稍后在没有学分的情况下默默使用.
一种方法是使用lookbehind((?<=...)).这是一个未捕获的零宽度断言,因此您可以匹配1前面的1或0前面的0:
input.gsub(/(?<=1)1|(?<=0)0/, ',\0')
Run Code Online (Sandbox Code Playgroud)
\0是匹配的字符串,即a 1或0,但不是1或在0它之前.