我有一个服装网站链接列表,我使用关键字按性别对这些网站进行了分类。根据它们所针对的网站,它们都有不同的 URL 结构,例如...
www.website1.com/shop/womens/tops/tshirt
www.website2.com/products/womens-tshirt
我不能使用 .include?方法,因为无论是.include?("mens") 还是.include?("womens"),它都会返回true。我怎么能有一个只对“女性”返回 true 的方法(反之亦然)。我怀疑它可能必须是某种正则表达式,但我对这些比较缺乏经验,而且不同的 URL 结构使它变得更加棘手。非常感谢任何帮助,谢谢!
最佳答案
执行此操作的规范正则表达式方法是在单词边界上搜索:
pry(main)> "foo/womens/bar".match(/\bwomens\b/)
=> #<MatchData "womens">
pry(main)> "foo/womens/bar".match(/\bmens\b/)
=> nil
pry(main)> "foo/mens/bar".match(/\bmens\b/)
=> #<MatchData "mens">
pry(main)> "foo/mens/bar".match(/\bwomens\b/)
=> nil
也就是说,拆分或使用前导 "/"
进行搜索可能就足够了。
关于ruby-on-rails - 查找字符串中的确切单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8745955/