String.scan 和 String.split 之间的区别

2024-01-27

这两个有什么区别(String#scan and String#split)在红宝石中?


它们服务于完全不同的目的。String#scan http://www.ruby-doc.org/core-1.9.3/String.html#method-i-scan用于从字符串中提取正则表达式的匹配项并将匹配项返回到数组中,而String#split http://www.ruby-doc.org/core-1.9.3/String.html#method-i-split旨在根据分隔符将字符串拆分为数组。分隔符可以是静态字符串(例如;以单个分号分割)或正则表达式(例如/\s/+分割任何空白字符)。

的输出String#split不包括分隔符。相反,除了分隔符之外的所有内容都将在输出数组中返回,而String#scan would only包括与分隔符匹配的内容。

# A delimited string split on | returns everything surrounding the | delimiters
"a|delimited|string".split("|")
# Prints: ["a", "delimited", "string"]

# The same string scanninng for | only returns the matched |
"a|delimited|string".scan("|")
# Prints: ["|", "|"]

上述两者也都接受正则表达式来代替简单字符串"|".

# Split on everything between and including two t's
"a|delimited|string".split(/t.+t/)
# Prints: ["a|delimi", "ring"]

# Search for everything between and including two t's
"a|delimited|string".scan(/t.+t/)
# Prints: ["ted|st"]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

String.scan 和 String.split 之间的区别 的相关文章

  • 将 gmaps4rails 与 https/SSL 结合使用

    我是 gmaps4rails 的忠实粉丝 它使向我们的网络应用程序添加地图变得非常容易 我现在遇到的唯一问题是 如果您在 https 页面上使用它 则会收到有关混合内容的安全警告 谷歌地图API确实支持https 所以我认为这只是将脚本引用
  • 具有预加载功能的 ActiveRecord::Calculations 是否会进行多个数据库查询?

    我的困惑源于这个问题 https stackoverflow com q 19462024 1860929 其中 OP 的模型如下 class Quote lt ActiveRecord Base has many items def ca
  • 为什么 Ruby 没有内置线程池?

    我有一个程序 它一次创建 10000 个线程 并同时运行 8 个线程 但是Ruby没有像Java那样内置ThreadPool 有充分的理由吗 可能是因为使用标准库 Queue 类很容易推出您自己的 q Queue new 3 times T
  • Ruby 字符串上的扫描和匹配有什么区别

    我是 Ruby 新手 并且一直使用String scan搜索某个数字第一次出现的位置 返回值在嵌套数组中有点奇怪 但我只是去了 0 0 为了我想要的价值观 我确信它有它的用途 只是我还没有使用它 我刚刚发现有一个String match方法
  • 拆分字符串而不删除分隔符

    我需要解析一个文件以获取单个 SQL 语句并从 Rails 控制器运行它们 我有以下代码 sql file RAILS ROOT lib evidence interface import sql sql stmts array File
  • 关于空 own_to 关联的最佳实践

    想象一下以下情况 我有一个dog模型和一个house模型 一只狗可以属于一个房子 一个房子可以有很多只狗 所以 Class Dog lt ActiveRecord Base belongs to house end Class House
  • 没有路线匹配... Rails Engine

    所以我不断收到错误 No route matches action gt create controller gt xaaron api keys 测试中抛出的是 it should not create an api key for th
  • 为什么 Ruby 中两个用空格分隔的字符串连接在一起?

    为什么这在 Ruby 中有效 foo bar gt foobar 我不确定为什么要连接字符串而不是给出语法错误 我很好奇这是否是预期的行为 以及解析器是否负责争论 没有运算符的两个字符串被视为单个字符串 或者语言定义本身指定了这种行为 隐式
  • 相当于 JavaScript 中 Ruby 的each_cons

    许多语言都曾提出过这个问题 但 javascript 却没有 Ruby 有方法Enumerable each cons https devdocs io ruby 2 5 enumerable method i each cons看起来像这
  • 无法在 Windows 7 上安装 Rmagick 和 Imagemagick

    当我跑步时gem install rmagick 2 13 1 gem从 rmagick 2 13 1 gem 所在的目录中 我收到一个错误 指出它无法构建 gem 本机扩展 下面显示 c Ruby192 bin ruby exe extc
  • rvm + Rails3 + gmaps4rails -acts_as_gmappable

    我是一个红宝石导轨之类的菜鸟 抱歉 如果我的问题很愚蠢 我设置了一个运行 ruby 1 8 7 p334 的 rvm 作为用户 环境 我已经为我的 应用程序 创建了一个 gemset 现在我想在页面上显示地址的地图 我四处寻找 发现了 gm
  • 使用 PayPal REST API,如何取消付款?

    使用 PayPal REST API 在客户点击 取消订单并返回网站 链接后 我似乎无法弄清楚如何取消付款 也许在生产模式下 PayPal 会自动取消这些付款 但在沙盒模式下它们似乎仍处于 已创建 状态 这一观察结果使我相信 我需要在返回网
  • 寻找在 Ruby on Rails 中构建安全 REST API 的建议

    我正开始为我正在从事的项目构建 REST API 这促使我对使用 RoR 构建 API 的最佳方法进行了一些研究 我很快发现 默认情况下 模型是向世界开放的 只需在 URL 末尾添加 xml 并传递适当的参数即可通过 URL 进行调用 那么
  • 如何在 Rails 中重定向到 404?

    我想在 Rails 中 伪造 404 页面 在 PHP 中 我只发送一个带有错误代码的标头 如下所示 header HTTP 1 0 404 Not Found Rails 是如何做到这一点的 不要自己渲染 404 没有理由这样做 Rail
  • 在 Rspec 中测试 STDOUT 输出

    我正在尝试为这个声明建立一个规范 使用 看跌期权 很容易 print file doesn t exist Create Empty File y n RSpec 3 0 RSpec 3 0添加了一个新的output matcher htt
  • ruby 正则表达式扫描与 =~

    Ruby 1 9 3 文档似乎暗示 scan 等同于 除了 scan 返回多个匹配项 而 仅返回第一个匹配项 并且 scan 返回匹配数据 而 返回索引 但是 在下面的示例中 这两种方法似乎对相同的字符串和表达式返回不同的结果 这是为什么
  • 是否可以下载 Ruby gem 而不自动安装它?

    当我使用下载东西时gem我希望能够只下载 gem 然后选择是否要安装它 我问这个问题是因为我想在多台计算机上安装特定的 gem 而不是在每台计算机上从互联网安装 宝石获取 所以 像 gem fetch gosu 这将离开gosu 0 7 1
  • Rails:RSpec - nil:NilClass 的未定义方法“cookie_jar”

    铁轨新手 尝试遵循迈克尔 哈特尔的教程 尝试添加辅助方法来模拟 RSpec 测试中的日志时陷入困境 describe when the a user has logged in and attempts to visit the page
  • 为什么机架响应主体是数组而不是字符串?

    他们的文档中的一个经典的 hello world 示例 class HelloWorld def call env return 200 Hello world end end 我的问题是为什么第三个值是 Hello world 而不是 H
  • 如何在 Ruby 中访问私有类方法?

    给定一个 Ruby 类 class MyClass def self my class method puts class method end private def my method puts regular method end p

随机推荐