的输出
strsplit('abc dcf', split = '(?=c)', perl = T)
符合预期。
然而,输出
strsplit('abc dcf', split = '(?!c)', perl = T)
是
[[1]]
[1] "a" "b" "c" " " "d" "c" "f"
虽然我的期望是
[[1]]
[1] "a" "b" "c " "d" "cf"
因为我认为如果前一个块的最后一个字符与char c
匹配,它就不会被分割。我对负面预测的理解是错误的吗?
答案 0 :(得分:1)
我们可以尝试
strsplit('abc dcf', "(?![c ])\\s*\\b", perl=TRUE)
#[[1]]
#[1] "a" "b" "c " "d" "cf"