(1)gsubfn
/
、>
またはスペースではなく、タグにそれを抽出するものに続く入力文字列は、(それが改行を含んでいてもよい)、これは<
一致s
していると仮定します。 table
関数は出現を集計します。たとえば
library(gsubfn)
tags <- strapply(tolower(s), "\\<([^/> ]+)", c, simplify = unlist)
table(tags)
、
s <- "<html>
<body>
<h1>hello</h1>
</body>
</html>"
tags <- strapply(tolower(s), "\\<([^/> ]+)", c, simplify = unlist)
table(tags)
は、この与える:あなたのファイルが非常に大きい場合
tags
body h1 html
1 1 1
を、その後the development version of gsubfnstrapplyc
と呼ばれる高速なバージョンがあります。
(2)XML
引用文字列と他の境界例で<
と>
記号がある場合は、上記のアプローチは混乱して得ることができます。そことにかく、あなたの入力のいずれかのような場合ではないかもしれないが、念のために、この第2のアプローチは、その問題を持つべきではありません。
library(XML)
doc <- htmlTreeParse(tolower(s), asText = TRUE, useInternalNodes = TRUE)
tags <- xpathSApply(doc, "//*", xmlName)
table(tags)
これはうまくいくかもしれない彼は本当に簡単なHTMLを持っていますが、一般的に、あなたが正規表現で解析HTMLをカント場合。例えば、これは属性をストリングしません。 – frankc
@frankcあなたがそのコメントを残そうとするなら、本当に[The Question](http://stackoverflow.com/q/1732348/324364)にリンクする必要があります。 :) – joran