如何获取字符串中所有出现 Ruby 正则表达式的匹配数据?

2023-12-13

我需要MatchData对于字符串中正则表达式的每次出现。这与中建议的扫描方法不同匹配正则表达式的所有出现,因为这只给了我一个字符串数组(我需要完整的 MatchData,以获取开始和结束信息等)。

input = "abc12def34ghijklmno567pqrs"
numbers = /\d+/

numbers.match input # #<MatchData "12"> (only the first match)
input.scan numbers  # ["12", "34", "567"] (all matches, but only the strings)

我怀疑有一些我忽略的方法。建议?


你要

"abc12def34ghijklmno567pqrs".to_enum(:scan, /\d+/).map { Regexp.last_match }

这给了你

[#<MatchData "12">, #<MatchData "34">, #<MatchData "567">] 

正如您所看到的,“技巧”是构建一个枚举器以获得每个last_match.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取字符串中所有出现 Ruby 正则表达式的匹配数据? 的相关文章

  • Perl 正则表达式图灵完备吗?

    我见过 Ruby 和 Perl 程序员做了一些事情复杂的代码挑战 https codegolf stackexchange com questions 3596 regex validating regex完全用正则表达式 这前瞻和后瞻 h
  • 超类与类SpecificationPolicy不匹配

    我得到了一个superclass mismatch for class SpecificationPolicy尝试安装或升级某些brew 软件包时出错 例如 更新安装 supabase CLI 时 brew install supabase
  • 我可以让这个 Ruby 代码更快并且/或使用更少的内存吗?

    我有一个Array of StringRuby 中的对象由如下单词组成 animals cat horse dog cat dog bird dog sheep chicken cow 我想将其转换为另一个Array of String对象
  • 比较 ruby​​ 哈希值[重复]

    这个问题在这里已经有答案了 可能的重复 如何比较两个哈希值 https stackoverflow com questions 4928789 how do i compare two hashes 我有两个 ruby 哈希值 本质上是模型
  • 如何在 CakePHP 中“验证”人名?

    我有一个 PHP 脚本 应该检查 有效 的人名 但最近破解了带有空格的名称 因此我们向验证器添加了空格 除了这样做之外 有没有办法向 CakePHP 的验证器添加黑名单以阻止所有 无效 字符 而不是允许 有效 字符 注意 我 通常 知道如何
  • MySQL正则表达式:如何将字符串中的数字与\d匹配?

    我有一个专栏release date它以字符串格式存储日期 不是 DATETIME 格式 因为它们有时可以是任何其他字符串文字 我想根据给定的月份和年份查找任意日期的所有记录 尝试遵循但对我不起作用 gt Post find all con
  • 从logstash中的文件名获取事件的时间戳

    我们有一个将事件写入文件的进程 没有时间戳 文件名本身带有时间戳后缀 该时间戳应用于文件中的所有事件 现在 我尝试使用logstash的输入文件插件来解析该文件 有没有一种方法可以将文件名获取到字段 以便我可以使用 gsub 过滤器提取时间
  • 在 Rails 中本地化嵌套虚拟属性

    怎么可能本地化嵌套虚拟属性在 Rails 中 该模型 class User lt ActiveRecord Base attr accessor company information This is used in callbacks e
  • Ruby 动态变量名

    有没有办法在 Ruby 中创建具有动态名称的变量 我正在读取一个文件 当我找到一个字符串时 会生成一个哈希值 e g file File new games log r file lines do l l split do p if p 1
  • 如何用正则表达式替换多个匹配/组?

    通常我们会编写以下内容来替换一场比赛 namesRegex re compile r is life re I replaced namesRegex sub r butter There is no life in the void pr
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • 使用基于 DFA(线性时间)正则表达式捕获组:可能吗?

    是否可以使用基于 DFA 的正则表达式实现捕获组 同时保持相对于输入长度的线性时间复杂度 直觉上我认为不是 因为子集构造过程不知道它可能落在哪个捕获组内 但这是我第一次意识到这可能是一个潜在的问题 所以我不知道 是否可以使用基于 DFA 的
  • 如何使用正则表达式将字符串分成相同字符的组?

    我有一个这样的字符串 var string AAAAAAABBBCCCCCCDD 并喜欢将字符串分割成这种格式的数组 same characters gt same group 使用正则表达式 Array AAAAAAA BBB CCCCC
  • 处理铁路中 STI 子类路线的最佳实践

    我的 Rails 视图和控制器散布着redirect to link to and form for方法调用 有时link to and redirect to它们链接的路径是明确的 例如link to New Person new per
  • 将对象转换为哈希,然后将其保存到用户的列

    找不到任何接近我想做的事情 我想将一个对象存储到用户的列中 该列采用数组的形式 postgres def change add column users interest string array true default end 我有另一
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • JS用正则表达式替换数字

    我有元素的标识符 如下所示 form book 1 2 3 我想要的是用其他值替换该标识符中的第二个数字 我将函数 match 与以下正则表达式一起使用 var regexp d d d 但它返回我包含的数组 1 2 3 2 因此 当我尝试
  • 使用FFMpeg确定视频类型,然后进行转换?

    我正在尝试以编程方式确定文件的真实类型 看来我必须使用 FFMPeg 来实现这一点 我想确定上传的文件实际上是否是 MP4 或 FLV 对于 Flash 视频 或 WebM 对于 HTML5 我知道 FFMPeg 中的 i 运算符 但我不知
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar
  • 如何在 javascript 正则表达式中匹配平衡分隔符?

    我原以为这个问题是不可能的 据我所知 Javascript 的正则表达式既没有递归插值 也没有漂亮的 NET 平衡组功能 但问题就在那里 如问题 12 所示正则表达式 alf nu http regex alf nu 匹配平衡对 lt an

随机推荐

  • ASP.NET 应用程序内存使用率较高

    我们的一些 ASP Net 应用程序存在问题 我们的一些应用程序从一开始就占用大量内存作为其工作集 在我们的 2 个 webfarm 服务器 每个 4GB RAM 上运行多个应用程序 我们有一个稳定的环境 大约有 1 2GB 的可用内存 然
  • 使用 CLGeocoder 的正向地理编码示例

    除了 Apple 文档之外 还有有关工作示例的说明或有关如何使用正向地理编码的一些指南 这很通用 我无法理解 拜托 这太好了 还有人知道他们是使用 Google API 来实现相同的还是他们自己的吗 发现这个有效 但如果其他人发现它有用 我
  • 从映射缓冲区写入“O_DIRECT”输出文件

    我有一个写入视频缓冲区的设备 该缓冲区是使用 CMA 在系统内存中分配的 我想实现从该缓冲区到块设备的流式写入 我的应用程序使用 mmap 打开视频缓冲区 我想使用O DIRECT写入以避免与页面缓存相关的开销 基本上 应用程序的伪代码如下
  • 在java中使用SAX解析大型XML

    我正在尝试解析堆栈溢出数据转储 其中一个表称为 posts xml 其中包含大约 1000 万个条目 示例 XML
  • 使用多个对象作为键的哈希/关联数组

    有没有一种方法可以创建一个关联数组 其中每个键都是多个对象的哈希值 我对检查每个对象的状态不感兴趣 而是对对象的身份感兴趣 var myarray var a new A var b new B var c new C is not rig
  • 如何解决 CSS 文件中的“序言中不允许字符”错误

    我有财产声明h3 color 333 在我的 CSS 文件中 当我检查我的 CSS 文件时https validator w3 org 表明 序言中不允许出现字符 h 我的 h3 标签有什么问题 序言 是什么意思 有人可以解释一下吗 htt
  • 从 db2 导出带有列名的数据

    我想将 db2 表中的数据导出为 csv 格式 我还需要第一行应该是所有列名称 我使用以下命令几乎没有成功 EXPORT TO TEST csv OF DEL MODIFIED BY NOCHARDEL coldel SELECT col1
  • 值中带有数组的 NUnit 顺序属性

    我怎样才能通过string 数组到 ValuesAttribute I have public string Array1 new new test1 test2 Test Sequential public void SomeTest V
  • 用于 Avaya IVR 和 CTI 集成的 Java 客户端

    我正在寻求开发一个 Java 客户端 用于将 Avaya IVR 集成到 CTI 我有两个问题 IVR输出的格式是什么 如何使用JAVA读取此内容 我想开发一个java程序 它能够读取呼叫者提供给IVR的输入 并据此采取一些行动 Avaya
  • 确定 C++0x 可用性

    我试图确定编译时 C 0x 功能是否可用 有通用的预处理器宏吗 我使用的是 Visual Studio 2010 的编译器和 Intel 的编译器 宏观 cplusplus will 有一个价值比 更棒199711L 也就是说 并非所有编译
  • 赋值运算符与自定义构造函数的关系

    include
  • CursorAdapter如何在android上的GridView中工作

    我在 gridview 上使用光标适配器时遇到问题 我使用光标从媒体商店加载照片 我意识到我的 newView 和 bindView 被完全调用了 我的意思是假设我有 500 张照片 newView 也会被调用相同的次数 我做错了什么吗 我
  • TPL 和 async/await 之间的区别(线程处理)

    尝试了解 TPL 和 TPL 之间的区别async await当谈到线程创建时 我相信 TPL TaskFactory StartNew 的工作原理类似于ThreadPool QueueUserWorkItem因为它在线程池中的线程上排队工
  • JSOUP HTML 解析器

    有没有办法得到起始行号和列号 and 结束行号和列号元素 标签 我正在创建 HTML 编辑器 需要突出显示标签以根据给定的某些场景进行速度优化起始和结束行号和列号 不 不幸的是 目前 jsoup 无法做到这一点 目前 Jsoup 不跟踪行号
  • Facebook Connect 和相册

    我目前正在为模特 演员开发一个网站 此时我只是想确定我可以使用 Facebook Connect 做什么和不能做什么 我几乎没有使用 Facebook Connect 或 FQL 的经验 基本上将会有一个设施 用户可以上传他们的照片 我想知
  • 在Android中播放Vimeo视频,视频url包含iframe

    你好 我正在开发 Android 应用程序 我想在其中播放 vimeo 视频 我从 json 中的 Api 获得响应 并使用 webview 播放视频 并且播放效果很好 但是 webview 显示非常小 播放的视频也很小 问题是 我希望播放
  • Mysql更改默认引擎

    如何将mysql引擎改为MYISAM 现在我有 INNODB 的 mysql 但我想将引擎更改为 MYISAM 我必须做什么 CREATE TABLE classifieds category id int 11 NOT NULL AUTO
  • laravel新建数据时无法按类别保存计算数据

    模型花费时间 在 laravel 中创建新数据时 无法按类别保存计算数据 public static function findOrCreate plan id data fromDate Carbon now gt subDay gt s
  • Android主项目与库项目-如何在项目之间传递设置

    刚刚开始使用 Android 我正在尝试创建一个具有免费和付费版本的应用程序 我也是 Java 新手 但我成功地在 Eclipse 中创建了一个简单的工作应用程序 它由 2 个主要项目组成 一个是免费版本 一个是付费版本 我还有一个库项目
  • 如何获取字符串中所有出现 Ruby 正则表达式的匹配数据?

    我需要MatchData对于字符串中正则表达式的每次出现 这与中建议的扫描方法不同匹配正则表达式的所有出现 因为这只给了我一个字符串数组 我需要完整的 MatchData 以获取开始和结束信息等 input abc12def34ghijkl