正如标题所说,我想拆分这个字符串
strsplit(c("aaa,aaa", "bbb, bbb", "ddd , ddd"), ",")
到那个
[[1]]
[1] "aaa" "aaa"
[[2]]
[1] "bbb, bbb"
[[3]]
[1] "ddd , ddd"
因此,正则表达式必须考虑在逗号后不应出现空格。可能是一个骗局,但无法通过谷歌搜索找到解决方案。
答案 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)
这与上面的结果相同。