在字符串中第N个字符后定位第一个空格

时间:2018-11-06 19:19:42

标签: r string

我需要找到字符串中每20个字符之后的第一个空格,并插入新行而不是该空格。我正在使用R和纵梁包。到目前为止,我已使用此代码添加了新行,而不是每个空格:

gsub(" ", "\n", "My very long and very annoying string")

"My\nvery\nlong\nand\nvery\nannoying\nstring"

但是我只需要对第20、40、60等个字符之后的第一个空格执行此操作。结果应如下所示(因为非常包含第20个字符):

"My very long and very\nannoying string"

我该如何解决?

1 个答案:

答案 0 :(得分:0)

让我们先取一个更长的字符串:

txt <- "My very long long long long and very annoying string"

然后我们可以执行以下操作

aux <- str_locate_all(txt, " ")[[1]]
pos <- aux[which(diff(aux[, 1] %/% 20) == 1) + 1, 1]
for(p in pos)
  substr(txt, p, p) <- "\n"

cat(txt)
# My very long long long
# long and very annoying
# string