Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中去掉字符串中的一个反斜杠?_R_Regex_String_Character - Fatal编程技术网

如何在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))