标题几乎解释了它。我正在使用 Ruby 1.9.3 和 Rails 3.2.2 为自己编写一个博客引擎,我需要能够从帖子中获取第一段(作为文本单元存储在数据库中)以用作帖子头版摘要。最简单的方法是什么?
谷歌在这个问题上透露的很少;这似乎不是一个普遍的需求。
标题几乎解释了它。我正在使用 Ruby 1.9.3 和 Rails 3.2.2 为自己编写一个博客引擎,我需要能够从帖子中获取第一段(作为文本单元存储在数据库中)以用作帖子头版摘要。最简单的方法是什么?
谷歌在这个问题上透露的很少;这似乎不是一个普遍的需求。
一旦你开始思考在你的世界中究竟是什么定义了“段落”,答案就会变得相当明显。
如果它是第一个字符列表,后跟两个换行符?就像是
str.split("\n\n", 2)[0]
可以工作。
如果您有 HTML 并且您的段落由<p>
标签定义,请使用 nokogiri 之类的
Nokogiri::HTML.parse(input_string).css('p').first.text
但是再次,这完全取决于你如何定义你的段落。一旦您开始考虑您想要拥有什么,例如如何以抽象方式将输入数据转换为输出数据,这样的事情通常会自行解决。所需的算法自然来自这些步骤。
万一这可能对某人有所帮助,我通过将 Holger Just 的 Nokogiri 解决方案与 RedCloth 相结合来获得 html 标签,从而在 RoR 中获得了预期的结果:
Nokogiri::HTML.parse(raw RedCloth.new(input_string).to_html).css('p').first.text
str.lines[0] 应该给你第一句话......或者如果你不介意在句子中间分裂,则只需使用 truncate() ActionView Helper