ruby - 如何从出现在数组中的字符串中选择整个单词?

标签 ruby

我想根据单词数组检查一个长字符串并选择匹配的单词。这些词可以是多个词 such asThis is 或 more。这是我目前所拥有的。

str = "This is a demo text for demo..."
w = ["This is", "to", "is", "for demo"]     
w.select{ |w| str.include?w } #=>["This is", "is", "for demo"] 

但在此我不希望我的结果有“in”、“get”等

str = "This is a demo text for demo together within..."
w = ["This is", "to", "is", "for demo", "in", "get"]    
w.select{ |w| str.include?w } #=> ["This is", "to", "is", "for demo", "in", "get"]

str.include?w 正在做它应该做的事情。有没有其他选择?

最佳答案

str = "This is a demo text for demo..."
w = ["This is", "to", "is", "for demo"]     
p w.select{|w|str =~ /\b#{w}\b/ }

正则表达式中的\b是一个单词边界; #{w} 是插值,就像在字符串中一样。

关于ruby - 如何从出现在数组中的字符串中选择整个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22152024/

相关文章:

ruby-on-rails - 从 Mac 到 Ubuntu Server 的 SSH 不允许我执行相同的命令

ruby - Chef 独奏示例

ruby-on-rails - 我如何才能在 Windows 上安装 curb?

ruby-on-rails - Rails 6 从 Sidekiq Job 获取结果 - 这可能吗?

ruby - 为什么 block 变量是可选的?

ruby-on-rails - ruby rails : CSS and skins management

ruby-on-rails - Rails 3 - 测试 View 是否调用方法

ruby-on-rails - Ruby 单词数组作为哈希?

ruby-on-rails - NameError : undefined local variable or method `app' for - Rails 5. 1.6升级

ruby-on-rails - 如何返回 Rails 中不同的行?