假设我在字符串下面-
Str = "15 1,270.00 19050 104.77 40.36 2020070 Rolling IN303028 - 63965276"
现在,我想基于space
拆分字符串,但是不应拆分最后一个短语,即'IN303028 - 63965276'
。所以我尝试使用-
strsplit(Str, " ")
但这也分裂了最后一个短语。是否有任何方法可以按space
进行拆分,但不包括'IN303028 - 63965276'
的模式,即如果两个连续的spaces
包含hyphen
,则应排除该部分。
任何指针都会受到赞赏。
谢谢
答案 0 :(得分:4)
我们可以进行正则表达式环顾四周,以检查字符后面不是-
([^-]
)的空格以及后面不是-
的字符
strsplit(Str, "(?<=[^-]) (?=[^-])", perl = TRUE)
#[[1]]
#[1] "15" "1,270.00" "19050" "104.77" "40.36" "2020070"
#[7] "Rolling" "IN303028 - 63965276"
或者使用*SKIP
*FAIL
不考虑存在-
的空格
strsplit(Str, " - (*SKIP)(*F)| ", perl = TRUE)
#[[1]]
#[1] "15" "1,270.00" "19050" "104.77" "40.36" "2020070"
#[7] "Rolling" "IN303028 - 63965276"