R 在从外部源接收的字符串中搜索反斜杠
我有一个从数据库收到的字符串,所以在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
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])