我试图在第一个反斜杠之前提取字符串的一部分,但我似乎无法让它正常工作.
我已经尝试了多种方法让它工作,基于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之间的\上分开:
提前致谢
这是一个你可以使用的正则表达式:它分裂为\和不可打印的字符:
strsplit("BLAAT1\022E:\\BLAAT2\\BLAAT3","[\\\\]|[^[:print:]]",fixed=FALSE)
# [1] "BLAAT1" "E:" "BLAAT2" "BLAAT3"
Run Code Online (Sandbox Code Playgroud)
请参阅IDEONE演示
| 归档时间: |
|
| 查看次数: |
5500 次 |
| 最近记录: |