2014-03-31 67 views
1

我想用正則表達式匹配包含單個反斜槓的字符串。例如,在正則表達式中匹配單個反斜槓

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

我相信你想使用fixed = TRUE,使反斜線字面解釋:

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

然而,在這個例子中你提供這仍然返回整數(0)。原因是你在打印的x值中看到的\本身就是轉義字符。嘗試搜索'lang ='',而不是注意逃脫的報價:

grep("lang=\"", x, fixed = TRUE) 
相關問題