在R中按空格分割字符串

时间:2020-04-14 18:30:46

标签: r regex

假设我在字符串下面-

Str = "15 1,270.00 19050 104.77 40.36 2020070 Rolling IN303028 - 63965276"

现在,我想基于space拆分字符串,但是不应拆分最后一个短语,即'IN303028 - 63965276'。所以我尝试使用-

strsplit(Str, " ")

但这也分裂了最后一个短语。是否有任何方法可以按space进行拆分,但不包括'IN303028 - 63965276'的模式,即如果两个连续的spaces包含hyphen,则应排除该部分。

任何指针都会受到赞赏。

谢谢

1 个答案:

答案 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"