正则表达式执行仅返回第一个匹配项[重复]

2024-04-21

我正在尝试实现以下找到的正则表达式搜索Golfscript 语法页面 http://www.golfscript.com/golfscript/syntax.html.

var ptrn = /[a-zA-Z_][a-zA-Z0-9_]*|'(?:\\.|[^'])*'?|"(?:\\.|[^"])*"?|-?[0-9]+|#[^\n\r]*|./mg;
input = ptrn.exec(input);

输入只是正则表达式的第一个匹配项。例如:"hello" "world"应该返回["hello", "world"]但它只返回["hello"].


正则表达式执行程序 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec一次只能返回一个匹配结果。

为了检索多个匹配项,您需要运行exec多次在表达式对象上。例如,使用一个简单的 while 循环:

var ptrn = /[a-zA-Z_][a-zA-Z0-9_]*|'(?:\\.|[^'])*'?|"(?:\\.|[^"])*"?|-?[0-9]+|#[^\n\r]*|./mg;

var match;
while ((match = ptrn.exec(input)) != null) {
    console.log(match);
}

这会将所有匹配记录到控制台。

请注意,为了使其工作,您需要确保正则表达式具有g(全局)标志 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Parameters。该标志确保在表达式上执行某些方法后,lastIndex财产 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex已更新,因此将开始进一步的通话after之前的结果。

还需要声明正则表达式outside循环(如上例所示)。否则,表达式对象将在每次迭代时重新创建,然后lastIndex显然每次都会重置,导致无限循环。

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

正则表达式执行仅返回第一个匹配项[重复] 的相关文章

随机推荐

  • API向后兼容性的最佳实践

    我正在开发一个与 JSON API 进行通信的 iPhone iPad Android 应用程序 该应用程序版本的第一个版本已经完成 现在正在进行其他开发阶段 在其他阶段 应用程序需要与新版本的 API 集成 并允许用户访问其他功能 例如新
  • 在C中将多个值分配给数组

    有没有办法以压缩的形式做到这一点 GLfloat coordinates 8 coordinates 0 1 0f coordinates 1 0 0f coordinates 2 1 0f coordinates 3 1 0f coord
  • SSIS:如何使用链接服务器:

    我已经通过 MS SQL Server Management Studio 成功添加了链接服务器 它的名称是 SQL2 Link 当我在 SSIS 中添加一个连接作为 ADO NET 连接时 它不会显示在可用选项列表中 如何将其添加为 SS
  • hg 存档到远程目录

    有没有办法通过 SSH 将 Mercurial 存储库存档到远程目录 例如 如果可以执行以下操作 那就太好了 hg archive ssh email protected cdn cgi l email protection path to
  • Karma-webpack+Angular TypeError:未定义不是对象(评估 '$httpBackend.expectPOST'

    我收到以下错误 PhantomJS 2 1 1 Linux 0 0 0 leave API service create should create a leave FAILED static app min js 4804 54 forE
  • 在 WPF 窗口上加载多个 UserControls

    我有一个窗口 在其中加载一个用户控件 例如 Control1 现在 如果用户单击某个新的 UserControl 按钮 Control2 应该加载到窗口上 而 Control1 应该消失 同样 当用户单击下一个 UserControl 的按
  • PyTorch 中复数矩阵的行列式

    有没有办法在 PyTorch 中计算复矩阵的行列式 torch det未针对 ComplexFloat 实现 不幸的是 目前尚未实施 一种方法是实现您自己的版本或简单地使用np linalg det 这是一个简短的函数 它计算我使用 LU
  • 如何在plotly 3D曲面图中标记区域?

    我使用plotly从xyz数据创建3D高程剖面图 它与以下代码配合得很好 import plotly graph objects as go import pandas as pd import numpy as np Read data
  • PHP DOM:按标签名称获取元素

    我担心这是一个非常愚蠢的问题 但在过去两个小时尝试了大量组合后 我真的陷入了困境 我正在尝试从 XML 文件中提取 NAME 我的 XML 文件
  • numpy bincount 可以处理二维数组吗?

    我看到 numpy bincount 的行为我无法理解 我想以行方式将值存储在二维数组中 并查看下面的行为 为什么它可以与 dbArray 一起使用 但与 simarray 一起失败 gt gt gt dbArray array 1 0 1
  • JavaFX 2.2 不可见节点的鼠标事件

    我正在尝试接收 JavaFX 2 2 中不可见节点的 MouseEvents 将其视为一个交互式但不可见的区域 例如当鼠标悬停在其上时应触发操作 问题是 这不是静态定义的区域 而是有多个区域 很多 可以由应用程序移动和调整大小 因此 对于我
  • UITableView 检测最后一个单元格

    我怎样才能检测到UITableView已滚动到底部以便最后一个单元格可见 Inside tableView cellForRowAtIndexPath or tableView willDisplayCell forRowAtIndexPa
  • 如何增加 MVC 3 中的会话超时

    我有一个 ASP NET MVC 3 Razor 应用程序 并且经常遇到会话超时 有没有办法增加Session的价值 您没有提供足够的详细信息 例如您的配置 问题描述等 更确切地说发生了什么 这篇文章可能会有所帮助 ASP NET MVC3
  • 在 PyDev 中运行 Twisted 应用程序

    我想使用 Eclipse 3 5 2 PyDev 模块 1 6 4 和 Python 2 6 5 调试 Twisted 应用程序 10 0 0 要从命令行运行应用程序 我将指定以下内容 c python26 python c python2
  • 将填充设置为动态文本框 C# asp.net

    这是我从 C 代码创建文本框的代码 for int x 0 x lt 30 x TextBox txt new TextBox txt ID txt x ToString data Controls Add txt data Control
  • 为什么 GAE 启动第二个实例并将“最大空闲实例数”设置为 1

    我使用 Google App Engine 且计费状态已启用 空闲实例设置为 1 1 由于我的服务只有 2 个客户 有时我会看到第二个实例 问题是启动新实例需要 15 秒 spring 和 co 80 Mb 内存对于一个实例来说太高了 新实
  • 安装 debugger-linecache (1.1.1) 时出错,Bundler 无法继续

    知道如何解决这个问题吗 Gem Installer ExtensionBuildError ERROR Failed to build gem native extension home durrantm rvm rubies ruby 1
  • Razor 不理解未封闭的 html 标签

    使用 RazorViewEngine 我可以这样做 if somecondition div some stuff div 但我似乎无法做到这一点 剃刀感到困惑 if somecondition div if someothercondit
  • 在 python 中,如何从日期和时间创建时区感知日期时间?

    在 Python 中 假设我的日期是 2016 年 12 月 25 日 如何创建该日期中午的时区感知日期时间 如果它与 Django 的时区处理兼容 那就加分了 诀窍是首先combine将天真的时间和日期转换为天真的日期时间 然后可以将此原
  • 正则表达式执行仅返回第一个匹配项[重复]

    这个问题在这里已经有答案了 我正在尝试实现以下找到的正则表达式搜索Golfscript 语法页面 http www golfscript com golfscript syntax html var ptrn a zA Z a zA Z0