ruby-on-rails - 如何在不创建空字符串的情况下在 Ruby 中拆分文本?

标签 ruby-on-rails ruby string parsing split

按空格、句点、逗号或双引号拆分,而不是按单引号拆分:

str = %Q{this is the.string    to's split,real "ok" nice-like.}
str.split(/\s|\.|,|"/)
=> ["this", "is", "the", "string", "", "", "", "to's", "split", "real", "", "ok", "", "nice-like"]

如何 Eloquent 地删除空字符串?

如何 Eloquent 地删除短于 MIN_LENGTH 的字符串?

最佳答案

在这种情况下使用split 的想法是不正确的。您应该使用 scan

str = %Q{this is the.string    to's split,real "ok" nice-like.}
str.scan(/[\w'-]+/)
# => ["this", "is", "the", "string", "to's", "split", "real", "ok", "nice-like"]

为了匹配 MIN_LENGTH 或更长的字符串,请这样做:

MIN_LENGTH = 3
str.scan(/[\w'-]{#{MIN_LENGTH},}/)
# => ["this", "the", "string", "to's", "split", "real", "nice-like"]

什么时候用split,什么时候用scan

  • 当分隔符很乱并且很难用正则表达式匹配它们时,请使用scan
  • 当要提取的子字符串很杂乱并且很难用正则表达式匹配它们时,使用split
  • 当您想对要提取的子字符串的形式施加条件时,您可以扫描
  • 如果您想对定界符的形式施加条件,请使用split

关于ruby-on-rails - 如何在不创建空字符串的情况下在 Ruby 中拆分文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9713609/

相关文章:

ruby-on-rails - Rails 设计了简单的形式,不保存所有字段

ruby-on-rails - 如何将数字数组转换为范围

c - 在 C 中为函数设置值

string - 将日期格式从 DD.MM.YYYY 转换为 YYYY-MM-DD

ruby-on-rails - 试图让 Postgres 和 Postgis 在 Rails 应用程序中运行

ruby-on-rails - "use"Ruby/Rails/Rack 代码中的关键字/词

ruby-on-rails - 什么时候 ruby​​ 数组计数不等于数组中的元素数?

ruby - 当我的 .gemspec 中包含所有 gem 时,如何避免打包程序警告多个来源?

ruby-on-rails - 如何在 Rails 中覆盖 `root_path`?

string - 在 hive 中将多列连接成一列