我想在一個長度為> 65536的字串中插入子串"A"的位置n。我正在使用gsub來完成這個任務,因為它非常有效。
n = 5。
文本 < -粘貼(rep("a"/span>。 70000)。 崩潰 = "")
lhs <- '^(.{n})(.*)$'
rhs <- '1A2'
gsub(lhs, rhs, text。 perl=TRUE)
當我選擇n為小值時,例如5,代碼作業正常。然而,如果n = 66000,就會出現以下錯誤資訊:
在 gsub(lhs, rhs, text, perl = TRUE) 。 PCRE模式編譯錯誤
'number too big in {} quantifier'。
at '})(.*)$'
如何解決這個問題?
uj5u.com熱心網友回復:
由于模式長度的限制,看起來你將不能在這里使用sub。 但實際上,對于這個問題,基本的字串函式應該是有效的,而且可能會更有效率:
insertA < - function(x, n) {>
return(paste0(substring)。 1, n-1)。 "A", substring(x, n。 nchar(x))))
}
文本 < -粘貼(rep("a"/span>。 30), collapse = ")
insertA(text, 5)
[1] "aaaAaaaaaaaaaaaaaaaa"
這種方法只是使用substring和paste將A字符分成用戶選擇的兩半。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/322202.html
標籤:
下一篇:我無法安裝本地反應器
