ruby - 如何检测另一个字符串中 1 个字符串中是否存在子字符串?

标签 ruby string string-matching

假设我有一个字符串 "rubinassociatespa",我想做的是在任何其他字符串中检测该字符串的任何包含 3 个或更多字符的子字符串。

例如,应检测以下字符串:

  • 鲁宾
  • 同事
  • 水疗中心
  • 屁股

但不应检测的是以下字符串:

  • 抢劫
  • cpa
  • dea
  • ru 或未出现在我的原始字符串中或短于 3 个字符的任何其他子字符串。

基本上,我有一个字符串,我正在将许多其他字符串与它进行比较,我只想匹配包含原始字符串子字符串的字符串。

我希望这很清楚。

最佳答案

str = "rubinassociatespa"

arr = %w| rubin associates spa ass rub rob cpa dea ru |
  #=> ["rubin", "associates", "spa", "ass", "rub", "rob", "cpa", "dea", "ru"]

只需使用 String#include? .

def substring?(str, s)
  (s.size >= 3) ? str.include?(s) : false
end

arr.each { |s| puts "#{s}: #{substring? str, s}" }
  # rubin: true
  # associates: true
  # spa: true
  # ass: true
  # rub: true
  # rob: false
  # cpa: false
  # dea: false
  # ru: false

关于ruby - 如何检测另一个字符串中 1 个字符串中是否存在子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40009394/

相关文章:

ruby - 在应用程序中接收和处理电子邮件

ruby-on-rails - ruby regex 使用最后一个匹配来分隔字符串,但应该首先使用

java - 如何从字符串中提取值

string - Erlang:在 guard 语句中匹配字符串

python - 通过任意映射在列表中查找等价词

ruby-on-rails - 样式表或 JavaScript 文件的 Rails 404 错误

mysql - rake 有问题。 rails

javascript - 编写一个函数,它接受一个字符串并返回一个新字符串,其中只有大写字母传递给该字符串

c - 如何将字符缓冲区中的十六进制地址转换为写入内存

python-3.x - 将方括号对之间的双引号替换为单引号