2013-01-08 59 views
0

我已經做了一些網絡上抄襲,有一個字符串,my_html,與鏈接,我想的grep()函數

我想grep(),並試圖(my_html的一個例子是這讓我

character(0) 

更長)

my_html <- 'stuff more stuff ... 
<TD ><A CLASS=my_link HREF=\"https://www.stuff.com/secure-bin/my_club/myrep.cgi/tpw9109.cry?scrtpw9109.cry\"> 
other stuff 
<p> www.google.com </p> 
end' 



my_pattern <- "<TD><A CLASS=my_link HREF=*>" 
grep(my_pattern,x=my_html,value=TRUE) 

我認爲這個問題是做機智h模式中的特殊字符,但我不知道補救措施。

+0

'fixed = TRUE'作爲'grep'的參數有幫助嗎? –

+0

不行,試過了。 – Yoda

+1

'*'在R正則表達式中不代表'任何',它表示'零個或多個前面的字符'。 '​​'也不會匹配'' –

回答

1
> sub('(^.+HREF=\\\")(.+)(\".+)', "\\2", my_html) 
[1] "https://www.stuff.com/secure-bin/my_club/myrep.cgi/tpw9109.cry?scrtpw9109.cry" 

基本上扔掉使用2-反斜槓來表示單個反斜槓HREF=\"\"之前任何表示一個雙引號。然後在下一個雙引號之前包含任何內容作爲第二個匹配的部分,以及從該標記到最後的任何內容作爲第三部分。所以它應該只返回中間匹配部分(如果存在的話)。

+0

謝謝,它的工作。 – Yoda