R 在从外部源接收的字符串中搜索反斜杠

R 在从外部源接收的字符串中搜索反斜杠,r,string,backslash,R,String,Backslash,我有一个从数据库收到的字符串,所以在R中它看起来像: a <- c("www", "x", "yes", "\303\243") > a [1] "www" "x" "yes" "ã" 但我一直在犯错误 正则表达式“\”无效,原因为“尾部反斜杠” 无论我使用的是cat还是fixed=T 如何在列表中找到反斜杠?需要两次转义反斜杠,一次转义R中的字符串文字,一次转义正则表达式grepl(“\\\”,a[4])应用regexp\,而grepl(\\\\”,a[4])应用reg

我有一个从数据库收到的字符串,所以在R中它看起来像:

a <- c("www", "x", "yes", "\303\243")

> a
[1] "www" "x"   "yes" "ã" 
但我一直在犯错误

正则表达式“\”无效,原因为“尾部反斜杠”

无论我使用的是
cat
还是
fixed=T


如何在列表中找到反斜杠?

需要两次转义反斜杠,一次转义R中的字符串文字,一次转义正则表达式
grepl(“\\\”,a[4])
应用regexp
\
,而
grepl(\\\\”,a[4])
应用regexp
\
。要查看转义字符串文字,可以使用
cat(“\\”)


但是我认为您的字符串根本不包含任何反斜杠,因为在定义中反斜杠出现在转义序列中,而不是作为字符本身。

您看到了吗?
a[4]
=>
[1]“Ô
:R直接将\303和\243解释为对应的符号可能
编码(a)=“拉丁1”
,很有趣,不允许您搜索该角色<代码>as.integer(charToRaw(\\”);grepl(“\092”,a,useBytes=TRUE,fixed=TRUE)是一个错误。简单的事实是
a的任何元素中都没有反斜杠。考虑这个字符串:<代码>“Hello World!\n”< /代码>。你认为里面有反斜杠吗?此外,如果您想在带有
grep
的字符串中查找反斜杠,您应该:
grepl(\\\\\”,a[4])
,这当然是
FALSE
grepl('\\',a[4])