如何去掉 R 中字符串中的一个反斜杠?

How can I get rid of one backslash in a string in R?

如何从该字符串中删除所有反斜杠?

t1 <- "1"

输出:

"1[=11=]2[=11=]3[=11=]4[=11=]5"

期望的输出:

"1002003004005"

谢谢!

给你。

stringr::str_remove_all(stringi::stri_escape_unicode(t1), "\\u0")

输出为

[1] "1002003004005"

这个有点棘手,因为 "1[=15=]2[=15=]3[=15=]4[=15=]5" 并不是真正有效的字符串开头。要查看此内容:

> writeLines(t1)
1

但是,我们可以先deparse它来创建有效的字符串。

t2 <- deparse(t1)
> t2
[1] "\"1\002\003\004\005\""

然后使用常规 gsub 删除我们作为副作用添加的 \ 和引号。

t3 = gsub('\', '', t2, fixed = TRUE)
t3 = gsub('\"', '', t3)

更理想的情况是,我们编写复合正则表达式。

t3 = gsub('[(\")(\)]', '', t2)
> t3
[1] "1002003004005"

编辑:作为一名主播:

gsub('[(\")(\)]', '', deparse(t1))

您可以参考下面link以获取有关使用 gsub 的模式映射的更多详细信息:

How do I deal with special characters like \^$.?*|+()[{ in my regex?

https://rstudio.com/wp-content/uploads/2016/09/RegExCheatsheet.pdf