당신은 당신이 일치 내용을 대체 할 대체 기능을 제공 할 수있는 gsubfn
기능을 사용할 수 있습니다 .... 지금 내 마음에 오지 않을 것 정규식. 당신이 stringi
패키지가 설치되어있는 경우
require(gsubfn)
gsubfn("0{3,}", function (x) paste(replicate(nchar(x), "1"), collapse=""), input)
당신은
stri_dup("1", nchar(x))
와
paste(replicate(nchar(x), "1"), collapse="")
을 대체 할 수 있습니다.
gsub("(?!\\A)\\G0|(?=0{3,})0", "1", input, perl=TRUE)
그것은이다 : 또는
gsubfn("0{3,}", ~ gsub(".", 1, x), input)
, 당신은 대체 펄 모드에서 다음 정규식을 사용할 수 있습니다 G. Grothendieck로
아니면 더 간결 솔루션
는 코멘트에 제안
0{3,}
부분을 변경하여 임의의 숫자로 연속적으로 확장 가능
0
.
개인적으로이 솔루션의 사용을 보증하지는 않지만 유지 관리가 쉽지 않습니다.
또한 시도하십시오 :'gsubfn ("0 {3,}", ~ gsub (".", 1, x), input)' –