我正在使用模块ActionView::Helpers::TextHelper从文本中生成一个摘录。如果一个单词存在不止一次,它只会摘录第一次出现。
<%=节选(‘你好,我是一个Ruby爱好者,一个Rails爱好者,永远不会回到PHP,’爱人‘,:radius => 5) %>
"...lover,..."
我原以为返回字符串是这样的,因为“情人”这个词出现了两次:
" ...lover,...lover.“
如何让它显示多个关键字的出现?
我使用的是rails 3.2.11。
发布于 2013-07-15 16:54:32
摘录(文本、短语、选项= {})链接:
从匹配短语第一个实例的文本中提取摘录。:radius选项扩展短语第一次出现的每一侧的节选。
如文档所述,只是搜索短语的第一个实例,而不是它的每个实例。
发布于 2019-04-14 16:11:26
我一直在使用在我的multi_excerpt中定义的multi_excerpt()方法
# Returns a summary of +text+ in the form of +phrase+ excerpts
#
# multi_excerpt('This string is is a very long long long string ', 'string', radius: 5)
# # => ...This string is i...long string ...
def multi_excerpt(text, phrase, options = {})
return unless text && phrase
radius = options.fetch(:radius, 10)
omission = options.fetch(:omission, "...")
raise if phrase.is_a? Regexp
regex = /.{,#{radius}}#{Regexp.escape(phrase)}.{,#{radius}}/i
parts = text.scan(regex)
"#{omission}#{parts.join(omission)}#{omission}"
endhttps://stackoverflow.com/questions/17659275
复制相似问题