我有一個包含HTML標籤,例如從矢量
abc<-""welcome <span class=\"r\"><a href=\"abc\">abc</a></span> Have fun!""
我想刪除這些標籤,並得到follwing矢量
如
abc<-"welcome Have fun"
我有一個包含HTML標籤,例如從矢量
abc<-""welcome <span class=\"r\"><a href=\"abc\">abc</a></span> Have fun!""
我想刪除這些標籤,並得到follwing矢量
如
abc<-"welcome Have fun"
嘗試串矢量消除了與標籤數據
> gsub("(<[^>]*>)","",abc)
什麼這就是'代替<的每個實例,其次是任何不>沒有任何東西>
你不能只做gsub("<.*>","",abc)
,因爲正則表達式是貪婪的,並且。*會匹配到最後>在你的文字(在你的例子中你會失去'abc')。
如果您的代碼中有>><foo class=">" >
合法,此解決方案可能會失敗?毫無疑問,有人會想出另一個涉及用重量級XML包解析HTML的答案。
您可以將您的HTML片段轉換爲包含 htmlParse
或htmlTreeParse
的XML文檔。 然後,您可以將其轉換爲文本 即剝離所有標籤,並使用xmlValue
。
abc <- "welcome <span class=\"r\"><a href=\"abc\">abc</a></span> Have fun!"
library(XML)
#doc <- htmlParse(abc, asText=TRUE)
doc <- htmlTreeParse(abc, asText=TRUE)
xmlValue(xmlRoot(doc))
如果您也想刪除的鏈接, 可以使用xmlDOMApply
轉換XML樹的內容。
f <- function(x) if(xmlName(x) == "span") xmlTextNode(" ") else x
d <- xmlDOMApply(xmlRoot(doc), f)
xmlValue(d)
謝謝Spacedman如果載體含有像一個超鏈接的<-c(「你好http://abc.com」),我們怎樣才能刪除它 – jan5 2012-04-19 10:18:46
你必須要堅持的問題,因爲這個例子評論傾向於重新格式化文本並將事情弄糟...... – Spacedman 2012-04-19 11:27:37