逗号后用逗号分隔字符串而不尾随空格

时间:2018-04-16 13:17:11

标签: r regex string strsplit

正如标题所说,我想拆分这个字符串

strsplit(c("aaa,aaa", "bbb, bbb", "ddd , ddd"), ",")

到那个

[[1]]
[1] "aaa" "aaa"

[[2]]
[1] "bbb, bbb"

[[3]]
[1] "ddd , ddd"

因此,正则表达式必须考虑在逗号后不应出现空格。可能是一个骗局,但无法通过谷歌搜索找到解决方案。

2 个答案:

答案 0 :(得分:2)

  

正则表达式必须考虑在逗号后不应出现空格

使用否定先行断言:

> strsplit(c("aaa,aaa", "bbb, bbb", "ddd , ddd"), ",(?!\\s)", perl = TRUE)
[[1]]
[1] "aaa" "aaa"

[[2]]
[1] "bbb, bbb"

[[3]]
[1] "ddd , ddd"

,(?!\\s)仅在,后面没有空格

时才匹配

答案 1 :(得分:0)

只是使用(*SKIP)(*FAIL)提供替代方案:

pattern <- " , (*SKIP)(*FAIL)|,"
data <- c("aaa,aaa", "bbb, bbb", "ddd , ddd")
strsplit(data, pattern, perl = T)

这与上面的结果相同。