使用正则表达式从用户文本输入中查找所有出现的某些单词

时间:2015-09-15 12:03:03

标签: ruby regex string

我想通过文本字段接受用户输入,并根据定义的单词列表计算匹配(可以存储在任何地方)。这导致我String#scan和正则表达式。我想知道是否最好将定义的单词列表转换为新的正则表达式(在这种情况下我需要弄清楚如何定义正则表达式),并将其传递给输入上的scan文本。然后我可以编辑定义的单词列表而不影响正则表达式方法,而不是根据当前单词列表手动构建正则表达式。

这是解决这个问题的好方法吗?有更好的解决方案吗?我可以不使用正则表达式吗?

1 个答案:

答案 0 :(得分:1)

为什么不使用implicit def createBuilder[T <: Response]: Builder[T] = ... String#split

找到的搜索字词数:

Array#count?

作为搜索词之一的单词数:

story        = 'A long foo ago, in a bar baz, baz away...'
search_terms = ['foo', 'bar', 'baz']
search_terms.count { |search_term| story.split(/\W+/).include? search_term }
  # => 3