Ruby:查找字符串中的前 N ​​个正则表达式匹配项(并停止扫描)

2024-01-01

想要扫描很长的字符串以查找正则表达式匹配。想知道找到前 N 个正则表达式的最有效方法是什么。例如就像是:

'abcabcabc'.scan /b/, limit: 2

如果仅扫描支持限制选项,则会在 5 个字符后成功结束。

(该字符串有几 MB - 内存中的记忆数据结构 - 这是一个 Web 请求。性能很重要。)


不是那么优雅,但你可以使用块形式:

str = 'abcabcabc'

result = []
str.scan(/b/) { |match| result << match; break if result.size >= 2 }
result #=> ["b", "b"]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby:查找字符串中的前 N ​​个正则表达式匹配项(并停止扫描) 的相关文章

  • zk 与 gwt zk 请求太多

    您好 我正在尝试比较 zk 和 gwt 的性能 在我的比较中 如果框架本身将一些代码转换为js 那么我自己无法编写任何javascript 如get 但我无法自己编写js 在以上述方式编写代码时 几乎所有在浏览器上完成的操作都会将请求发送到
  • 正则表达式 - 从行首和行尾修剪空格[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions Link
  • Ruby:要散列的数组,没有任何局部变量

    我有一个字符串数组 array foo bar baz 我试图将其转变为以下内容 foo gt nil bar gt nil baz gt nil 我一直在这样做 new hash array each k new hash k nil n
  • Jekyll 站点仅在推送到 GitHub 时才会失败

    我正在使用 Jekyll 开发一个新版本的静态网站 该网站通过 Github 页面部署 https devcampy com https devcampy com 存储库 https github com gianarb devcampy
  • 了解 Ruby 的加载路径

    我有点困惑为什么我的项目无法加载它需要的文件 这是一个非常简单的项目树 processor bin lib processor rb processor mapper rb reducer rb and my processor rb文件看
  • Ruby/Rails - 访问“查找”表而不对其进行建模?

    这是针对 Ruby on Rails 3 0 x 项目的 我有一个 查找 表 其中包含来自供应商的数据 当我从其他来源导入数据时 我想检查此表 加入 SKU 以获取额外数据 在我的应用程序中为该表创建模型对我来说似乎不合适 我的应用程序永远
  • 如何在构建持续时间和 RAM 使用方面优化 gradle 构建性能?

    我目前正在为我的多模块 Web 应用程序从 ant 切换到 gradle 目前看来当前版本的 Gradle M9 可能已经达到了极限 但也许 希望 这只是我对 Gradle 概念理解不够好或者不知道 神奇的性能提升开关 的问题 我很高兴收到
  • 我应该如何获取 IEnumerable 的长度? [复制]

    这个问题在这里已经有答案了 我正在编写一些代码 然后去获取 IEnumerable 的长度 当我写的时候myEnumerable Count 令我惊讶的是 它没有编译 看完之后IEnumerable Count 和 Length 之间的区别
  • 当我使用并行代码时,为什么我的计算机没有显示加速?

    所以我意识到这个问题听起来很愚蠢 是的 我使用的是双核 但我尝试了两个不同的库 Grand Central Dispatch 和 OpenMP 并且当使用 clock 来对带有和不带有使平行的话 速度是一样的 根据记录 他们都使用自己的并行
  • 什么是粗网格搜索和细网格搜索?

    我正在读这个答案 用于 2D 碰撞检测的四叉树的高效 且解释良好 实现 https stackoverflow com questions 41946007 efficient and well explained implementati
  • 在 Golang 中生成固定长度的随机十六进制字符串的有效方法?

    我需要生成很多固定长度的随机十六进制字符串 我找到这个解决方案golang中如何生成固定长度的随机字符串 https stackoverflow com a 31832326 710955 我正在做这样的事情 const letterByt
  • 为什么“script”命令会生成 ^[ 和 ^M 字符以及如何使用 vim 搜索和替换删除它们?

    在linux上 使用bash shell 当我使用script命令时 生成的文件称为typescript 当我用 vim 打开该文件时 每一行都包含 M字符 并且有几行 由于我的彩色命令提示符 包含一个字符 我想用任何东西替换这些字符 从而
  • 循环中的递归算法复杂度(运行时间)

    我想了解您对如何检测以下递归算法的 T n 运行时间 的意见 Charm 是一种用于发现事务数据库中频繁闭项集的算法 频繁闭项集列表是在一组交易 tids 中多次出现的频繁项 例如面包和牛奶是经常一起购买的物品 它们是通过将索引为 i 的当
  • 使用 Ruby 中的 Turn_left 方法更改朝向

    我需要创建一个方法turn left来改变朝向 朝向总是从 南开始 我正在实现一个移动到木板上的机器人 所以如果我调用方法turn left应该将朝向改变为东 然后为北 然后为西 然后返回南方 我在想这样的事情 0 S 1 E 2 N 3
  • C# 编译器不会优化不必要的强制转换

    前几天 在写答案的时候这个问题 https stackoverflow com questions 2208315 why is any slower than contains在这里 关于溢出 我对 C 编译器感到有点惊讶 它没有按照我的
  • 检查 Ruby 上的浏览​​器控制台输出

    如何检查浏览器控制台是否有错误 例如 我用 Selenium 启动了浏览器 firefox 的 chrome 并且用 Selenium WebDriver 做了一些操作 之后我想知道网络控制台中是否有任何错误 我尝试接受控制台错误 例如 d
  • Java String ReplaceAll 方法给出非法重复错误?

    我有一个字符串 当我尝试运行时replaceAll方法 我收到这个奇怪的错误 String str something op str str replaceAll o n it works fine str str replaceAll n
  • 突出显示单词并提取其附近文本的函数

    我有一个文本例如 Etiam porta semmalesuada magna mollis euismod 整数取数 ante venenatis dapibus posuere velit aliquet 埃蒂亚姆 门塔 塞姆 male
  • 缓存感知树的实现

    I have a tree where every node may have 0 to N children 用例是以下查询 给定指向两个节点的指针 这些节点是否位于树的同一分支内 Examples q 2 7 gt true q 5 4
  • 使用 numpy 加速 for 循环

    下一个 for 循环如何使用 numpy 获得加速 我想这里可以使用一些奇特的索引技巧 但我不知道是哪一个 这里可以使用 einsum 吗 a 0 for i in range len b a numpy mean C d e f b i

随机推荐

  • 我在 VBA 中的代码使索引超出范围,但我确信数组的长度正确[重复]

    这个问题在这里已经有答案了 我需要设置val1 and val2分配给变量的数字total 无论我改变变量什么totalto 0 8 表示索引越界 我还打印了我用 MsgBox 引用的每个列表的长度 它显示为 8 我尝试将索引更改为该范围内
  • Rails 将无效路由重定向到 root

    如果我的网站是www foo com如果用户输入www foo com blahblahblah它会说 blahblahblah是一个无效的路径 显然 但我希望它重定向到 root path 以便控制器可以处理 URL 页面www foo
  • 发布版本中的 Swift 链接器错误可通过添加代码修复

    在 Xcode 8 中 我的一个 Swift 项目在调试模式下工作 但在发布模式下无法链接 Undefined symbols for architecture x86 64 Swift UnsafeMutableBufferPointer
  • Android通过蓝牙发送命令失败

    我将实现从 Android 平板电脑向嵌入蓝牙 IC 芯片 Andrino HC 06 的电子设备发送命令的模块 以便通过蓝牙配置我的设备 执行时 发送时设备似乎没有可观察到的响应22 23 54 01 C8 它显示以下超时异常 预计设备将
  • 在 pyqt 中禁用 QComboBox

    是否可以禁用QComboBox在 pyqt 中 就像我们可以在 Win Forms C 中一样 因为我在QComboBox手动的 我想启用QcomboBox仅当管理员登录时 我找到了我的问题的答案 QComboBox setEnabled
  • 我应该如何诊断和防止 JVM 崩溃?

    当我遇到 JVM 崩溃时 我 作为一个对 JVM 内部结构一无所知的 Java 程序员 应该做什么 特别是 您将如何生成可重现的测试用例 我应该在 Sun 或 IBM 的 bug 数据库中搜索什么 我可以从生成的日志文件中获取哪些信息 例如
  • 为什么 CLR/CLI 项目中没有智能感知

    我不知道我是否做错了什么 但是当我尝试编写代码时 没有智能感知弹出窗口指示选项或错误 我正在使用 Microsoft 的 Visual C 2010 创建 CLR CLI 类型的项目 请参阅 2009 年 5 月这篇博文中的第二条评论 ht
  • 当 API 不允许 Access-Control-Allow-Origin 时该怎么办

    我对所有这些同源策略的事情感到疯狂 当我尝试向 Google Maps API 发出请求时 没有出现任何问题 var jsonData ajax url http maps googleapis com maps api geocode j
  • 使用 Vue 单击并编辑文本输入

    我正在寻找一个点击并编辑的 Vue 组件 我发现了a fiddle https jsfiddle net ppyeo1tg 611 并做了一些编辑 它的工作原理如下 小提琴在这里 https jsfiddle net ppyeo1tg 61
  • CakePHP 用 MAX 查找

    表格和虚拟数据 CREATE TABLE IF NOT EXISTS messages id int 11 unsigned NOT NULL auto increment user id int 11 unsigned NOT NULL
  • Mayavi:在 triangular_mesh 中插入面部颜色

    我已经拼凑了 以下代码使用指定的颜色绘制三角形网格 附加标量函数 usr bin env python import numpy as np from mayavi import mlab Create cone n 8 t np lins
  • 将元素定位在

    我有一个Fiddle http jsfiddle net pTNqe 9 其中包含一个 div 一些文本和一个按钮 我想将按钮放置在 div 的右上角 无论 div 有多大 或者 div 中有多少文本 我想像 float right pos
  • 如何在 flutter 中使用粘性组列表时选择多个项目

    在这里解释一下我想要什么 我从 GitHub 获得了这段代码 当用户开始选择项目时 我想要带有操作按钮的应用栏 就像多个项目选择和应用栏显示所选项目的数量 我可以使用 ListViewbuilder 轻松完成此操作 但不知道如何在使用粘性组
  • SwiftUI:如何仅在需要时更新从父视图传输的变量?

    我想将变量从父视图传递到子视图 但在此子视图中 在文本字段中使用它 但仅在按下 保存 按钮时更新此值 我试过这个 父视图 struct ParentView View State private var name String var bo
  • “奇怪的”C# 属性语法

    我刚刚在一个 c 项目中看到了这个 public char this int index 我认为自己是 C 新手 任何人都可以帮助它的含义是什么 它是一个索引器 索引器允许对类或结构的实例进行索引 就像 数组 索引器类似于属性 只是它们的访
  • PowerBI:将列拆分为单独的列

    我有一个正在导入的类别多选字段 其中包含多个用逗号分隔的值 农业 小额信贷 和平建设 我的主要本能是使用文本函数将每个值拆分为单独的列 但我想知道是否有更好 更简单的方法来做到这一点 好的 找到了 在数据视图中打开编辑查询 右键单击该列 拆
  • 如何从多个数据帧创建热图

    我对 R 还很陌生 并且一直困惑于如何从列表中的多个数据帧创建热图 每个数据框中有 3 列 X 位置 Y 位置 PatchStatus 第一个数据框如下所示 listofdfs lt list list of dataframes list
  • Flyway 无法连接到 docker-entrypoint-initdb.d 脚本中的 postgres 容器

    我正在尝试延长docker 的 postgres https hub docker com postgres 图像可能 通过环境变量标志 在 DB init 上执行 Flyway DB 迁移 我的 Dockerfile 在这里 FROM p
  • extjs,是否可以压缩加载ext-all.js?

    我有一个使用 extjs 库的网站 确切地说 我只需要网格 ajax 和树组件 我的项目是全国使用的 为了避免某些地区带宽低造成的问题 我必须让它尽可能的轻量 当我在chrome中使用开发者工具时 我的网站太重了 特别是在加载 ext al
  • Ruby:查找字符串中的前 N ​​个正则表达式匹配项(并停止扫描)

    想要扫描很长的字符串以查找正则表达式匹配 想知道找到前 N 个正则表达式的最有效方法是什么 例如就像是 abcabcabc scan b limit 2 如果仅扫描支持限制选项 则会在 5 个字符后成功结束 该字符串有几 MB 内存中的记忆