Fnz*_* Xx 14 file-io r escaping backslash
我正在使用R将字符串写入文件:
> x1="\\str"
> x2="\\\str"
Error: '\s' is an unrecognized escape in character string starting "\\\s"
> x2="\\\\str"
> write(file='test',c(x1,x2))
Run Code Online (Sandbox Code Playgroud)
当我打开名为的文件时test,我看到了这个:
\str
\\str
Run Code Online (Sandbox Code Playgroud)
如果我想得到一个包含5个反斜杠的字符串,我应该写10个反斜杠,像这样吗?
x="\\\\\\\\\\str"
Run Code Online (Sandbox Code Playgroud)
aio*_*obe 19
[...] 如果我想得到一个包含5的字符串
\,我应该写10\[...]
是的你应该.要\在字符串中写入单个字符,请将其写为"\\".
这是因为它\是一个特殊字符,保留用于转义后面的字符.(也许你认为\n是换行符.)如果你想写一个包含单个字符串的字符串,它也很有用".你把它写成"\"".
之所以\\\str无效,是因为它被解释为\\(对应于单个\)后跟\s,这是无效的,因为"转义s"没有意义.
请注意,反斜杠的加倍是因为您在命令行输入字符串,并且字符串首先由R解析器解析.您可以以不同的方式输入字符串,其中一些不需要加倍.例如:
> tmp <- scan(what='')
1: \\\\\str
2:
Read 1 item
> print(tmp)
[1] "\\\\\\\\\\str"
> cat(tmp, '\n')
\\\\\str
>
Run Code Online (Sandbox Code Playgroud)