【发布时间】:2014-10-10 14:10:54
【问题描述】:
我正在尝试一些我认为很容易的事情。我正在寻找一个单一的正则表达式解决方案(尽管为了完整性而欢迎其他人)。我想拆分 n 次出现的分隔符。
这是一些数据:
x <- "I like_to see_how_too"
pat <- "_"
期望的结果
假设我想在第一次出现 _ 时拆分:
[1] "I like" "to see_how_too"
假设我想在第二次出现 _ 时拆分:
[1] "I like_to see" "how_too"
理想情况下,如果解决方案是一个正则表达式,则可以推广到第 n 次出现;该解决方案将使用带有单个正则表达式的strsplit。
这是一个不适合我使用strsplit 的单个正则表达式参数的解决方案
x <- "I like_to see_how_too"
y <- "_"
n <- 1
loc <- gregexpr("_", x)[[1]][n]
c(substr(x, 1, loc-1), substr(x, loc + 1, nchar(x)))
【问题讨论】:
-
您能否编写一个函数,将基于用户定义的
n的正则表达式模式粘贴在一起?例如,如果n <- 3,那么您可以将(任意)正则表达式粘贴在一起作为paste0("[a-z]{", n, "}") -
@hwnd - 我认为这可能适合您的答案
-
哦,那么……继续!哈哈
-
@RichardScriven 更新了,好主意。