我试图想出一种方法来计算包含html的特定字符串中的单词。
示例字符串:
<p>Hello World</p>
Ruby中有没有办法计算p标签之间的单词?或者这个问题的任何标签?
示例:
<p>Hello World</p>
<h2>Hello World</h2>
<li>Hello World</li>
提前致谢!
编辑(这是我的工作代码)
控制器:
class DashboardController < ApplicationController
def index
@pages = Page.find(:all)
@word_count = []
end
end
查看:
<% @pages.each do |page| %>
<% page.current_state.elements.each do |el| %>
<% @count = Hpricot(el.description).inner_text.split.uniq.size %>
<% @word_count << @count %>
<% end %>
<li><strong>Page Name: <%= page.slug %> (Word Count: <%= @word_count.inject(0){|sum,n| sum+n } %>)</strong></li>
<% end %>
答案 0 :(得分:6)
以下是您可以这样做的方法:
require 'hpricot'
content = "<p>Hello World...."
doc = Hpricot(content)
doc.inner_text.split.uniq
会给你:
[
[0] "Hello",
[1] "World"
]
(旁注:输出格式为awesome_print,我热烈推荐)
答案 1 :(得分:2)
不确定
答案 2 :(得分:0)
你会想要使用像Hpricot这样的东西去除HTML,然后它只是用纯文本计算单词的情况。
以下是剥离HTML的示例:http://underpantsgnome.com/2007/01/20/hpricot-scrub/
答案 3 :(得分:0)
首先从能够解析像Hpricot这样的HTML的东西开始,然后使用简单的正则表达式来做你想做的事情(你只能拆分空格然后再计算)