gpt4 book ai didi

r - 每> n个字符替换子字符串(有条件地为空格插入换行符)

转载 作者:行者123 更新时间:2023-12-04 13:37:11 24 4
gpt4 key购买 nike

我想在R中相当长的chracter向量中用换行符(\n)替换空格。但是,我不希望替换每个空格,仅当子字符串超过一定数量的字符(n)时。

例子:

mystring <- "this string is annoyingly long and therefore I would like to insert linebreaks" 

现在,我想在每个空格的长度大于20个字符( mystring)的情况下,在每个空格的 nchar > 20中插入换行符。

因此,结果字符串应如下所示:
"this string is annoyingly\nlong and therefore I would\nlike to insert linebreaks") 

在25、26和25个字符之后插入了换行符( \n)。

我怎样才能做到这一点?
也许结合 gsubstrsplit的东西?

最佳答案

您可以使用.{21,}?\s正则表达式来匹配任何21个(或以上的自nchar > 20)字符,但应尽可能少,直到最近的空格:

> gsub("(.{21,}?)\\s", "\\1\n", mystring)
[1] "this string is annoyingly\nlong and therefore I would\nlike to insert linebreaks"

详细信息:
  • (.{21,}?)-组1捕获任何21个或更多字符,但应尽可能少(因为{21,}?是一个惰性量词)
  • \\s-空格

  • 替换包含对组1的向后引用以在空白之前重新插入文本,以及换行符char(如果需要,也可以随意添加CR)。

    关于r - 每> n个字符替换子字符串(有条件地为空格插入换行符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41102417/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com