使用scan()读取转义字符

时间:2015-10-28 00:18:51

标签: r string

我已经看过现有的问题,但这并没有帮助。我试图从文本文件中读取一个SQL查询,它有引号和正则表达式。我找不到通过扫描字符串来获取\'字符的方法。我试过了:

> scan(text=" 'H' ", what="character")
Read 1 item
[1] "H"
There were 50 or more warnings (use warnings() to see the first 50)
> scan(text=" \'H\' ", what="character")
Read 1 item
[1] "H"
> scan(text=" \\'H\\' ", what="character")
Read 1 item
[1] "\\'H\\'"

我希望scan()的结果为\'H\',即当您在其上调用'H'时打印出cat的字符串。换句话说,字符串x产生什么

> scan(text=x, what="character")
Read 1 item
[1] "\'H\'"

我认为第二个例子会这样做,但事实并非如此。或者是否有scan()的替代方法,它不会对其读入的字符串进行静默更改?

(同样,对于正则表达式,我希望scan()返回cat ted生成'^\\d+'时的字符串。)

1 个答案:

答案 0 :(得分:2)

更改您的第一个电话,以包含对quote参数的调整。

x <- scan(text = " 'H' ", what = "", quote = "")
x
# [1] "'H'"
cat(x)
# 'H'

设置quote = ""表示没有引号字符,因此引号按原样读取。