gpt4 book ai didi

r - 如何通过R中连续的相同字母拆分字符串

转载 作者:行者123 更新时间:2023-12-01 23:28:40 27 4
gpt4 key购买 nike

我有这样一个字符串:

s <- "aaehhhhhhhaannd"

如何用R将字符串分割成下面的格式?

c("aa", "e", "hhhhhhh", "aa","nn","d") 

最佳答案

您可以使用基础 R strsplit使用基于 lookarounds 的 PCRE 正则表达式.

s <- "aaehhhhhhhaannd"
strsplit(s, "(?<=(.))(?!\\1)", perl=TRUE)
# [[1]]
# [1] "aa" "e" "hhhhhhh" "aa" "nn" "d"

参见 R demo online和一个 regex demo .

正则表达式详细信息:

  • (?<=(.)) - 正向后视 ((?<=...)),它“向左看”并捕获任何带有 (.) 的第 1 组字符capturing group (可以借助 \1 backreference 从模式内部引用此值)
  • (?!\\1) - 如果在当前位置的右侧立即有与第 1 组中捕获的值相同的值,则匹配失败的否定前瞻。

由于环视不消耗文本,因此拆分发生在不同字符之间的位置。

注意:如果你想要 .也匹配换行符,添加 (?s)在模式的开头(如在 PCRE 正则表达式中,. 默认不匹配换行符)。

关于r - 如何通过R中连续的相同字母拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43565229/

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