我有一个包含关键字的数组,我有一个字符串,可能包含这些关键字.我现在需要知道给定字符串中有多少个关键字:
keywords = [ 'text' ,'keywords' ,'contains' ,'blue', '42']
text = 'This text is not long but it contains 3 keywords'
Run Code Online (Sandbox Code Playgroud)
我现在如何用ruby命令找出我的数组中有多少字符串在文本中(本例中为三个)?我当然可以为每个循环使用a,但我几乎可以肯定有一种更简洁的方法来实现这一点.
谢谢你的帮助
更新:优选地,解决方案不应该依赖于空间.所以空格可以用任意字符代替.
更新2:该命令应查找唯一的事件.
这是一种方法:
text.scan(/#{keywords.join('|')}/).length
Run Code Online (Sandbox Code Playgroud)
请注意,仅当关键字数组仅包含字母数字字符时,这才是安全的.
不完全是你想要的但是
irb(main):012:0> text.split(' ')
=> ["This", "text", "is", "not", "long", "but", "it", "contains", "3", "keywords"]
irb(main):013:0> text.split(' ') & keywords
=> ["text", "contains", "keywords"]
Run Code Online (Sandbox Code Playgroud)
会给你一个匹配的数组
| 归档时间: |
|
| 查看次数: |
1000 次 |
| 最近记录: |