在每第N个单词后插入字符串

时间:2018-05-11 16:34:45

标签: r regex

我正在尝试编辑数据帧的每一行中的每个字符串。例如这个数据框:

df <- data.frame( words = c("Three can keep a secret, if two of them are dead."))

我的目标是在每隔三个字后填写一个“\ b”,所以我的数据框应如下所示:

df2 <- data.frame(words = c("Three can keep \b a secret, if \b two of them \b are dead."))

我已经尝试使用gsub()和模式“\\ s {3}”,但它不起作用。 这个操作的正确表达式如何?

1 个答案:

答案 0 :(得分:2)

你也必须允许这些字母。这应该可以让你了解

之后的情况
df2 <- within(df1, words <- gsub("(([A-Za-z1-9.,']+\\s){3})","\\1\b ", words))

如果你有很多标点符号要解决这个问题,这可能会更好(我只是在寻找。,以及&#39;以上:

df2 <- within(df1, words <- gsub("((\\S+\\s){3})","\\1\b ", words))