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