Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 用gsub插入反斜杠_R_Regex - Fatal编程技术网

R 用gsub插入反斜杠

R 用gsub插入反斜杠,r,regex,R,Regex,我想用knitr输出我的R分析,我有一个包含一行下划线的文本。我必须让他们逃脱,所以要把每一个\都变成\ 但是因为反斜杠在正则表达式中也是一个特殊字符,所以我没有找到一种方法在每个下划线之前插入一个反斜杠。看起来,奇数个反斜杠会产生错误(我猜最后一个反斜杠会与下划线成对出现),但尝试用偶数进行转义也不起作用 a <- "blah _ blah ___ blah" > gsub("_", "\\_", a) [1] "blah _ blah ___ blah" > gsub("_

我想用knitr输出我的R分析,我有一个包含一行下划线的文本。我必须让他们逃脱,所以要把每一个
\
都变成
\

但是因为反斜杠在正则表达式中也是一个特殊字符,所以我没有找到一种方法在每个下划线之前插入一个反斜杠。看起来,奇数个反斜杠会产生错误(我猜最后一个反斜杠会与下划线成对出现),但尝试用偶数进行转义也不起作用

a <- "blah _ blah ___ blah"
> gsub("_", "\\_", a)
[1] "blah _ blah ___ blah"
> gsub("_", "\\\\_", a)
[1] "blah \\_ blah \\_\\_\\_ blah"
> gsub("_", "\\\_", a)
Error: '\_' is an unrecognized escape in character string starting ""\\\_"
> gsub("_", "\_", a)
Error: '\_' is an unrecognized escape in character string starting ""\_"
a gsub(“\\\”,“\\\\”,a)
[1] “等等,等等”
>gsub(“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
[1] “胡说八道”
>gsub(“\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
错误:'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
>gsub(“\\”,“\\”,a)
错误:“\\”是以“\\”开头的字符串中无法识别的转义

正确的方法是什么?它不必使用gsub和regex,但我需要轻松地将转义应用于单个字符串

我们需要避开
\

gsub("_", "\\\\_", a)
cat(gsub("_", "\\\\_", a))
#blah \_ blah \_\_\_ blah
如果我们打印它,它只是一个
\

gsub("_", "\\\\_", a)
cat(gsub("_", "\\\\_", a))
#blah \_ blah \_\_\_ blah
我们可以通过
nchar

nchar("\\")
#[1] 1

这个问题不是重复的。另一个问题的答案是使用两个反斜杠-你可以在我的文本中看到,我尝试了它,但它不起作用。这些都是重复的,问题-替换为
\
-描述得很好。阿克伦回答了很多次。这是。@WiktorStribiżew好的,对不起,现在拿到了。“必须通过cat运行”部分确实让我困惑。