匹配正则表达式中的单个反斜杠

时间:2014-03-31 16:10:28

标签: regex string r

我尝试使用正则表达式匹配包含单个反斜杠的字符串。例如,

library(RCurl)
x <- getURL("http://www.nytimes.com")

x现在包含网页的内容,其中包含许多单个反斜杠。例如,在此字符串开头附近,我们有lang=\"en\"。现在假设我想将它与正则表达式函数匹配,例如grep。然而,

> grep("lang=\\", x)
Error in grep("lang=\\", x) : 
  invalid regular expression, reason 'Trailing backslash'

> grep("lang=\\\\", x)
integer(0)

使用三个反斜杠也不起作用,因为R会将grep("lang=\\\", x)视为不完整的句子。

1 个答案:

答案 0 :(得分:1)

我相信你想使用fixed = TRUE以便按字面解释反斜杠:

grep("lang=\\", x, fixed = TRUE)

但是在您提供的示例中,仍然会返回整数(0)。原因是你在打印的x值中看到的是转义字符本身。尝试搜索'lang =“'而不是注意转义的引用:

grep("lang=\"", x, fixed = TRUE)