Esta pregunta se relaciona con mi question about Roxygen.cadenas de embalaje, pero no las subseries entre comillas, utilizando R
Quiero escribir una nueva función que hace el ajuste de texto de cuerdas, similar a strwrap
o stringr::str_wrap
, pero con la siguiente giro : Cualquier elemento (subcadena) en la cadena entre comillas no se debe permitir.
Así, por ejemplo, usando los siguientes datos de la muestra
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\")"
Quiero la salida deseada de un newWrapFunction(x, width=40, ...)
sea:
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
¿Se puede pensar en una manera de hacer esto?
PS. Si puede ayudarme a resolver esto, propondré este código como un parche al roxygen2
. Identifiqué dónde debería aplicarse este parche y reconoceré su contribución.
Neat. @Andrie no especificó comillas simples versus dobles, pero ¿podría ser una buena idea dividir en "\" | ""? No tenía idea de cómo manejaría las comillas simples (por ejemplo, apóstrofes) dentro de los segmentos con comillas dobles. – joran
@joran : Veamos si mi regex-fu está a la altura del desafío. Ciertamente, estoy dejando el tema de la cita mixta (¿desastre?) Para otro día. –