正则表达式匹配多个组

2023-12-12

我有以下带有正则表达式的字符串示例,我试图匹配它:

Regex: ^\d{3}( [0-9a-fA-F]{2}){3}

要匹配的字符串:010 00 00 00

我的问题是这样的 - 正则表达式匹配并捕获 1 组 - 最终00在字符串的末尾。但是,我希望它能够匹配所有三个00组在最后。为什么这不起作用?当然括号应该意味着它们都同等匹配吗?

我知道我可以分别输入这三个组,但这只是较长字符串的简短摘录,因此这会很痛苦。我希望这能提供一个更优雅的解决方案,但似乎我的理解有些缺乏!

Thanks!


由于捕获组上有量词,因此您只能看到上次迭代的捕获。不过,幸运的是,.NET(与其他实现不同)提供了一种从以下位置检索捕获的机制:all迭代,通过CaptureCollection 类。从链接的文档:

如果将量词应用于捕获组,则 CaptureCollection 将为每个捕获的子字符串包含一个 Capture 对象,并且 Group 对象仅提供有关最后捕获的子字符串的信息。

链接文档中提供了示例:

  // Match a sentence with a pattern that has a quantifier that  
  // applies to the entire group.
  pattern = @"(\b\w+\W{1,2})+";
  match = Regex.Match(input, pattern);
  Console.WriteLine("Pattern: " + pattern);
  Console.WriteLine("Match: " + match.Value);
  Console.WriteLine("  Match.Captures: {0}", match.Captures.Count);
  for (int ctr = 0; ctr < match.Captures.Count; ctr++)
     Console.WriteLine("    {0}: '{1}'", ctr, match.Captures[ctr].Value);

  Console.WriteLine("  Match.Groups: {0}", match.Groups.Count);
  for (int groupCtr = 0; groupCtr < match.Groups.Count; groupCtr++)
  {
     Console.WriteLine("    Group {0}: '{1}'", groupCtr, match.Groups[groupCtr].Value);
     Console.WriteLine("    Group({0}).Captures: {1}", 
                       groupCtr, match.Groups[groupCtr].Captures.Count);
     for (int captureCtr = 0; captureCtr < match.Groups[groupCtr].Captures.Count; captureCtr++)
        Console.WriteLine("      Capture {0}: '{1}'", captureCtr, match.Groups[groupCtr].Captures[captureCtr].Value);
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式匹配多个组 的相关文章

  • C++ 返回值、引用、const 引用

    你能向我解释一下返回值 值引用和值常量引用之间的区别吗 Value Vector2D operator const Vector2D vector this gt x vector x this gt y vector y return t
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • 操作/Lambda 表达式内存管理问题

    我将一个操作存储在局部变量中 然后在该局部变量超出范围后使用 使用前是否有被清理的危险 这是一个例子 public List GetMaps Action
  • Javascript 正则表达式来匹配正则表达式

    我正在研究一个特殊的正则表达式来匹配 javascript 正则表达式 现在我有这个正则表达式工作 i g m 例如 foo match i g m gt foo foo undefined foo i match i g m gt foo
  • C++:将模板参数的模板类型成员添加为好友的正确语法?

    我有一个带有模板类型参数 tTRAIT 的类 我想加一个模板为好友type member aliastTRAIT 但我无法弄清楚语法 这可能吗 template
  • StreamReader,C#,peek

    我有一个 StreamReader 它偶尔会检查它是否有更多内容可以从简单的文本文件中读取 它使用 peek 属性 问题是 当我使用 peek 时 位置发生了变化 尽管不应该发生 FileStream m fsReader new File
  • 使用 size_t 值反向遍历向量

    我想以相反的方向遍历向量的值 如您所知 向量的大小为 size t 当我使用以下代码时 for size t r m size 1 r gt 0 r x r f r for size t c r 1 c lt m size c x r m
  • 本地主机上的 .net HTTP_X_FORWARDED_FOR NULL

    抱歉 如果其他地方已经回答了这个问题 我找不到它 如果没有 我会尝试查找访问过该站点的机器的原始 IP 根据我的基本理解 变量HTTP X FORWARDED FOR无论代理和其他过滤器如何 都会显示用户的 IP 如果这是真的 我正在尝试对
  • 将一个整数从 C 客户端发送到 Java 服务器

    我使用此代码将一个整数从我的 Java 客户端发送到我的 Java 服务器 int n rand nextInt 50 1 DataOutputStream dos new DataOutputStream socket getOutput
  • 文件名的正则表达式模式

    如果文件名符合以下条件 用户可以将文件放入服务器 它必须以 abc 开头 然后是一个点和一个数字 Valid file names abc 2344 abc 111 Invalid abcd 11 abc ab12 正则表达式是什么 我不能
  • 使用宏计算源文件行数?

    是否可以使用 C C 预处理器将源文件中的行数计算为宏或某种编译时可用值 例如 我可以更换吗MAGIC1 MAGIC2 and MAGIC3在下面 并在使用时以某种方式获取值 4MAGIC3 MAGIC1 can be placed whe
  • 带有自定义鉴别器的 EntityFramework Code First 继承

    我正在尝试在 EntityFramework Code First 中映射以下继承 public class Member public string ProjectName get set public string AssemblyNa
  • 如何解决内存碎片

    我们偶尔会遇到这样的问题 长时间运行的服务器进程 在 Windows Server 2003 上运行 由于内存分配失败而引发异常 我们怀疑这些分配由于内存碎片而失败 因此 我们一直在寻找一些可能对我们有帮助的替代内存分配机制 我希望有人能告
  • 从 exit() 和 fork() 返回的结果奇怪地发生了位移

    我有一个 C 代码 有时会自行分叉 每个分叉都会执行一些操作 然后返回一个错误代码 目前 每个子进程返回其 ID 0 n void other int numero exit numero int main for int i 0 i lt
  • C# Julian 日期解析器

    我在电子表格中有一个单元格 它是 Excel 中的日期对象 但当它来自 C1 的 xls 类时 它会变成双精度型 类似于 2009 年 1 月 7 日的 39820 0 我读到这是儒略日期格式 有人可以告诉我如何在 C 中将其解析回 Dat
  • 字符串 c 的二叉树

    我正在尝试实现一个能够在 c 中保存字符串的二叉树 在让代码适用于整数之后 我尝试稍微修改它以处理字符数组 现在我似乎完全破解了代码 但不知道如何破解 任何帮助表示赞赏 include
  • OpenGL 计算着色器调用

    我有一个与新计算着色器相关的问题 我目前正在研究粒子系统 我将所有粒子存储在着色器存储缓冲区中 以便在计算着色器中访问它们 然后我派遣一个一维工作组 define WORK GROUP SIZE 128 shaderManager gt u
  • 从 STL 列表中删除项目

    我想创建一个函数 如果符合特定条件 则将项目从一个 STL 列表移动到另一个列表 这段代码不是这样做的方法 迭代器很可能会被擦除 函数失效并导致问题 for std list
  • 如何从尖点库矩阵格式获取原始指针

    我需要从尖点库矩阵格式获取原始指针 例如 cusp coo matrix
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所

随机推荐

  • 为什么 kubernetes 需要有 2 个 coredns pod

    我安装了新的 kubernetes 单节点集群 并且看到 2 个 coredns pod 正在运行 其中一个失败了 不是这个问题的一部分 为什么他们是2个 有关 CoreDNS 的详细调整信息link CoreDNS 内存使用情况主要受集群
  • Python:找不到 os.listdir 文件[重复]

    这个问题在这里已经有答案了 我最近将配置文件移动到项目中的另一个文件夹 我尝试像这样加载 CONFIG PATH os path abspath os path dirname os path abspath file config def
  • for循环后全局变量的值不会改变

    我正在开发一个hadoop项目 我想找到某一天的客户 然后写出当天消费最多的客户 在我的减速器类中 由于某种原因 全局变量maxfor 循环后不会改变它的值 EDIT我想找到某一天消费最多的顾客 我已经设法在我想要的日期找到客户 但我在减速
  • 如何将第 3 方 JAR 添加到 jGRASP 中的编译时类路径?

    我需要做什么才能成功导入ij包裹 我收到错误 ITCN java 1 package ij does not exist 进口产品为 import ij import ij io import ij gui import ij proces
  • Service Worker 将 API 调用中的文件添加到预缓存中

    使我的应用程序能够离线运行 在安装过程中 服务人员应该 从异步 API 获取 URL 列表 重新格式化响应 将响应中的所有 URL 添加到预缓存 对于此任务 我将 Google Workbox 与 Webpack 结合使用 问题 虽然服务工
  • 查找并计算网络中隔离和半隔离节点的数量

    我正在与经历了许多的网络合作扰乱事件 因此 许多节点会因给定事件而发生故障 因此 左侧图像与右侧图像之间存在过渡 我的问题 我怎样才能找到不连通的子图 即使它们只包含 1 个节点 我的目的是count他们并渲染失败了 因为在我的研究中 这适
  • 在 Gitahead 中的 origin 上也创建标签

    当我在本地存储库上创建标签时 它是在我的本地存储库上创建的 我不知道如何推送位于 GitHub 上的源 我可以通过命令行将其推送到远程存储库 git push origin v0 3 0 但我想知道是否有办法通过 Gitahead 的 GU
  • 使用单个副本时,Kubernetes 部署不执行滚动更新

    我修改了部署配置 生产 yaml 更改了容器映像值 然后我运行了这个 kubectl replace f production yaml 发生这种情况时 我的服务似乎没有响应 此外 kubectl get pods wordpress 21
  • Pyinstaller 未加载 DLL

    为我的 python 脚本构建 exe 后dungeon py 我收到错误时PyBearLibTerminal py 我的程序导入的脚本 尝试加载 DLLBearLibTerminal dll 该脚本运行正常 只是运行导致错误的可执行文件
  • Google 地图 - 平移和缩放区域 - 放大或平移时标记不出现

    我正在标记的服务器端实现一些基于边界的集群 以显示在我的谷歌地图上 我正在做的是 我有一个函数 每次移动 平移或缩放地图时都会调用该函数 该函数获取地图的边界并进行 ajax 调用 服务器端脚本又运行一个简单的 sql 查询来检索标记并对它
  • Android:自动选择调试/发布 Maps v2 api 密钥?

    我在我的项目中使用 Google Maps v2 API 在 Google 地图 v2 中 调试 发布 API 密钥定义在AndroidManifest xml 我见过the link但地图键是在 xml 布局文件中定义的 而不是在Andr
  • 自签名小程序可以访问本地文件系统吗

    您好 我已经创建了一个自签名小程序 但无法访问本地文件系统 我该怎么办 你需要将你的IO代码包装在里面特权动作 通常 您需要使用测试证书对小程序进行签名 用户将看到警告 并且在加载小程序时必须接受证书 那么您需要将代码包装在 Privili
  • Python:binned_statistic_2d 均值计算忽略数据中的 NaN

    我在用scipy stats binned statistic 2d通过查找每个箱内点的平均值 将不规则数据分箱到统一网格上 x y np meshgrid sort np random uniform 0 1 100 sort np ra
  • src绝对路径问题

    我有一个图像C wamp www site img我尝试将其显示在页面中 img src 但它不起作用 该文件实际上在那里 如果我尝试使用相对路径引用它 我就会得到图片 img src img mypicture jpg 错误在哪里 我错过
  • 在 Windows 中从命令行运行 python 脚本

    我正在尝试跑步蛇食 分析一个Python项目 我使用的是 Windows 机器 到目前为止我已经能够弄清楚如何 安装 Tortoise for Mercurial 以从站点下载 SnakeFood 代码 设置 Windows 路径以从命令提
  • Jquery 自动完成底部附加链接

    I am using jQuery auto complete plugin in my web project I want to show 3 element and after that i want to append see al
  • 如何通过重新定义的 ListBox 模板使用 UI 虚拟化

    我正在尝试使用 ListBox 作为包含多个项目的视图 当然 我需要在其中使用 UI 虚拟化 问题是虚拟化仅在我以这种方式声明 ListBox 时才起作用
  • 如何以编程方式获取下一个预定的触发时间?

    我制作了一个新的可安装触发器 该触发器每 2 天以编程方式为我的电子表格触发一次 那么当我返回到电子表格时 我可以得到下次触发函数的时间吗 或者甚至它触发的频率是多少 我所看到的是我可以获得它的类型 它触发的函数 唯一ID等等 Thanks
  • 如何删除具有任何零值的行

    我有一个问题需要解决如何删除 R 中具有零值的行 另一方面 我可以使用na omit 删除所有 NA 值或使用complete cases 删除包含 NA 值的行 有谁知道如何删除 R 中具有零值的行 例如 Before DateTime
  • 正则表达式匹配多个组

    我有以下带有正则表达式的字符串示例 我试图匹配它 Regex d 3 0 9a fA F 2 3 要匹配的字符串 010 00 00 00 我的问题是这样的 正则表达式匹配并捕获 1 组 最终00在字符串的末尾 但是 我希望它能够匹配所有三