R:反斜杠()分割

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R:反斜杠()分割相关的知识,希望对你有一定的参考价值。

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

根据strsplit的手册页和在线搜索后,我尝试了多种方法使其正常工作。

在我的实际情况下,字符串在我从数据库连接获得的数据帧中,但是我可以使用以下方法简化这种情况:

> strsplit(“ BLAAT1 \ 022E:\\ BLAAT2 \\ BLAAT3”,“ \\”,fixed = TRUE)[[1][1]“ BLAAT1 \ 022E:”“ BLAAT2”“ BLAAT3”> strsplit(“ BLAAT1 \ 022E:\\ BLAAT2 \\ BLAAT3”,“ \\”,fixed = FALSE)strsplit(“ BLAAT1 \ 022E:\\ BLAAT2 \\ BLAAT3”,“ \\”,已固定= FALSE)中的错误:无效的正则表达式“ \”,原因“尾随反斜杠”> 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函数一起使用,则可以将文字反斜杠编码为两个文字反斜杠(因为文字\是特殊的正则表达式元字符,用于形成正则表达式转义符,例如\d,[C0 ]等),但是由于R字符串文字支持字符串转义序列(例如\w用于回车,"\r"用于换行符),因此需要使用双反斜杠来定义文字反斜杠。

因此,"\n"是文字"\\",并且与文字反斜杠字符匹配的正则表达式模式为\,应使用4个反斜杠\\进行编码。

这里是可以使用的正则表达式:它在"\\\\"\处分割:

non-printable character

请参见strsplit("BLAAT1\022E:\\BLAAT2\\BLAAT3","\\\\|[^[:print:]]",fixed=FALSE) # [1] "BLAAT1" "E:" "BLAAT2" "BLAAT3"

以上是关于R:反斜杠()分割的主要内容,如果未能解决你的问题,请参考以下文章

jquery 冒号转义 为啥双斜杠

R - gsub 替换反斜杠

在R中有效地将反斜杠转换为正斜杠

替换 R 中的单个反斜杠

Python 正斜杠/与反斜杠

C语言中反斜杠““的意义和用法