我很难在正则表达式中使用\
作为chatterer。任何想法如何使这项工作?
grep(pattern = '\', "text with \ backslash", value = T )
# Expected output: [1] "text with backslash"
答案 0 :(得分:3)
R字符串中的单个\
无效,因为\
是转义字符。单个反斜杠实际上由两个反斜杠\\
表示。第一个用作转义字符,第二个用作实际反斜杠。函数cat
可用于打印最终字符串(与内部R表示形成对比)。
text <- "text with \\ backslash"
text
# [1] "text with \\ backslash"
cat(text)
# text with \ backslash
因为R字符串中的单个反斜杠由两个反斜杠\\
表示,所以在正则表达式中需要四个反斜杠\\\\
。这是因为\
也是正则表达式中的转义字符。因此,\\\\
可以解释为\\
两次。
grep(pattern = '\\\\', text, value = TRUE)
# [1] "text with \\ backslash"
答案 1 :(得分:0)
如果您想将\
符号替换为以获取
"text with backslash"
,可以尝试使用gsub
gsub(x ="text with \ backslash",pattern = "\\\\", replacement = "",fixed = T)
有关符号表达式的更多信息,请参阅第59页的本文档: http://gastonsanchez.com/Handling_and_Processing_Strings_in_R.pdf