R:反斜杠上的strsplit(\)

Ber*_*eef 6 regex r strsplit

我试图在第一个反斜杠之前提取字符串的一部分,但我似乎无法让它正常工作.

我已经尝试了多种方法让它工作,基于strsplit的手册页和在线搜索.

在我的实际情况中,字符串位于我从数据库连接获得的数据帧中,但我可以使用以下内容简化情况:

> strsplit("BLAAT1\022E:\\BLAAT2\\BLAAT3","\\",fixed=TRUE)
[[1]]
[1] "BLAAT1\022E:" "BLAAT2"      "BLAAT3"  

> strsplit("BLAAT1\022E:\\BLAAT2\\BLAAT3","\\",fixed=FALSE)
Error in strsplit("BLAAT1\022E:\\BLAAT2\\BLAAT3", "\\", fixed = FALSE) : 
  invalid regular expression '\', reason 'Trailing backslash'

> strsplit("BLAAT1\022E:\\BLAAT2\\BLAAT3","\\\\",fixed=TRUE)
[[1]]
[1] "BLAAT1\022E:\\BLAAT2\\BLAAT3"

> strsplit("BLAAT1\022E:\\BLAAT2\\BLAAT3","\\\\",fixed=FALSE)
[[1]]
[1] "BLAAT1\022E:" "BLAAT2"       "BLAAT3"      

预期的输出也会在BLAAT1和022E之间的\上分开:

提前致谢

Wik*_*żew 9

这是一个你可以使用的正则表达式:它分裂为\不可打印的字符:

strsplit("BLAAT1\022E:\\BLAAT2\\BLAAT3","[\\\\]|[^[:print:]]",fixed=FALSE)
# [1] "BLAAT1" "E:"     "BLAAT2" "BLAAT3"
Run Code Online (Sandbox Code Playgroud)

请参阅IDEONE演示