如何在R中去掉字符串中的一个反斜杠?
如何删除此字符串中的所有反斜杠如何在R中去掉字符串中的一个反斜杠?,r,regex,string,character,R,Regex,String,Character,如何删除此字符串中的所有反斜杠 t1 <- "1\2\3\4\5" 期望输出: "1002003004005" 谢谢大家! 给你 stringr::str_remove_all(stringi::stri_escape_unicode(t1), "\\\\u0") 输出为 [1] "1002003004005" 这是一个棘手的问题,因为“1\002\003\004\005”并不是一个真正有效的字符串开头。要了解这一点: > writeLines(t1) 1 但是,我们可以首
t1 <- "1\2\3\4\5"
期望输出:
"1002003004005"
谢谢大家! 给你
stringr::str_remove_all(stringi::stri_escape_unicode(t1), "\\\\u0")
输出为
[1] "1002003004005"
这是一个棘手的问题,因为
“1\002\003\004\005”
并不是一个真正有效的字符串开头。要了解这一点:
> writeLines(t1)
1
但是,我们可以首先deparse
it来创建有效字符串
t2 <- deparse(t1)
> t2
[1] "\"1\\002\\003\\004\\005\""
更理想的情况是,我们应该编写一个复合正则表达式
t3 = gsub('[(\")(\\)]', '', t2)
> t3
[1] "1002003004005"
编辑:作为一行:
gsub('[(\")(\\)]', '', deparse(t1))
有关使用gsub的模式映射的更多详细信息,请参阅以下链接:
这些不是反斜杠,而是unicode字母。@Pascal您可以使用
writeLines(t1)
验证它。无法将输出作为Unicode共享给您。你自己试试。真的,从输入中获得输出在某些层面上是不容易或不可取的。您可以从sub(“^[^]]*\\]\\s*”,“”,capture.output(charToRaw(t1))
开始,这会产生“31 02 03 04 05”
,但这显然是有缺陷的,因为31
(这是“1”
字符的原始位编码)。转换空格之类的字符串很容易,但是。。。对我来说,如果你想从“1\2”
中得到“1002”
,听起来可能对该数据有错误的假设。
t3 = gsub('[(\")(\\)]', '', t2)
> t3
[1] "1002003004005"
gsub('[(\")(\\)]', '', deparse(t1))