gpt4 book ai didi

R/stringr : split string, 但在输出中保留分隔符

转载 作者:行者123 更新时间:2023-12-04 10:50:59 25 4
gpt4 key购买 nike

我试图寻找解决方案,但似乎 R 没有明确的解决方案。
我尝试用空格和大写字母的模式分割字符串,我使用 纵梁包。

x <- "Foobar foobar, Foobar foobar"
str_split(x, " [:upper:]")

通常我会得到:
[[1]]
[1] "Foobar foobar," "oobar foobar"

但是,我想得到的输出应该包括来自分隔符的字母:
[[1]]
[1] "Foobar foobar," "Foobar foobar"

在 stringr 中可能没有像反向引用这样的开箱即用的解决方案,所以我很乐意得到任何帮助。

最佳答案

你可以用 1+ 个空格分割,后跟一个大写字母:

> str_split(x, "\\s+(?=[[:upper:]])")
[[1]]
[1] "Foobar foobar," "Foobar foobar"

这里,
  • \\s+ - 1 个或多个空格
  • (?=[[:upper:]]) - 一个 positive lookahead (非消耗模式)仅检查字符串中当前位置右侧的大写字母,而不将其添加到匹配值中,从而将其保留在输出中。

  • 请注意 \s匹配各种空白字符,而不仅仅是普通的常规空格。另外, it is safer使用 [[:upper:]]而不是 [:upper:] - 如果您打算将这些模式与其他正则表达式引擎(例如 PCRE)一起使用。

    关于R/stringr : split string, 但在输出中保留分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50650297/

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