R按分隔符拆分(split)并保留分隔符(split)

25
在R中,您可以使用strsplit函数按照分隔符(split)来拆分向量,如下所示:
x <- "What is this?  It's an onion.  What! That's| Well Crazy."
unlist(strsplit(x, "[\\?\\.\\!\\|]", perl=TRUE))

## [1] "What is this"    "  It's an onion" "  What"          " That's"        
## [5] " Well Crazy"

我想使用R保留分隔符(split),所以期望的输出应该是:

## [1] "What is this?"    "  It's an onion." "  What!"          " That's|"        
## [5] " Well Crazy."
1个回答

26
您可以使用"(?<=DELIMITERS)"
unlist(strsplit(x, "(?<=[?.!|])", perl=TRUE))

## [1] "What is this?"    "  It's an onion." "  What!"          " That's|"        
## [5] " Well Crazy.

3
您不需要所有的反斜杠。unlist(strsplit(x, "(?<=[?.!|])", perl=TRUE)) 返回相同的结果。 - Jake Burkhead
希望有一个选项,其中拆分是一个序列(例如“[0-9]+”),而不是单个字符... - dsz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接