這個問題是關係到我question about Roxygen.包裝字符串,但沒有加串,,使用R
我想編寫一個新的函數,它串的文字換行,類似於strwrap
或stringr::str_wrap
,但具有下列扭曲:字符串中包含在引號中的任何元素(子字符串)都不得包含。
因此,舉例來說,使用下面的示例數據
test <- "function(x=123456789, y=\"This is a long string argument\")"
cat(test)
function(x=123456789, y="This is a long string argument")
strwrap(test, width=40)
[1] "function(x=123456789, y=\"This is a long"
[2] "string argument\")"
我想newWrapFunction(x, width=40, ...)
的所需輸出是:
desired <- c("function(x=123456789, ", "y=\"This is a long string argument\")")
desired
[1] "function(x=123456789, "
[2] "y=\"This is a long string argument\")"
identical(desired, newWrapFunction(tsring, width=40))
[1] TRUE
你能不能想辦法做到這一點?
PS。如果你能幫我解決這個問題,我會提出這個代碼作爲roxygen2
的補丁。我已經確定了這個補丁應該應用在哪裏,並且會承認你的貢獻。
整潔。 @Andrie沒有指定單引號和雙引號,但是可能在「\'| \」「上分割會是一個好主意?不知道如何處理雙引號段內的單引號(例如,撇號)。 – joran
@joran :讓我們來看看我的正則表達式是否能夠應對挑戰。我肯定會在另一天離開混合報價問題(混亂?)。 –