正则表达式提取由管道分隔的字符串的第 n 个标记

2023-12-10

我是正则表达式的新手

我需要从下面的示例文本中计算和提取标记:

AA||CCCCCCCC|||FFFFFFFFFFF

请求第四个令牌我必须得到一个空的“”字符串,请求第六个令牌我必须得到“FFFFFFFFFFFF”

有可能有这样的正则表达式吗?

提前致谢!

PS:对于我用过的令牌计数'\|'在结果中添加 +1 表示字符串不为空,当然还有另一种更有效的方法可以仅使用正则表达式来做到这一点......


将字符串拆分为|会更有效,但这也有效。

Code

我们将计数器称为大括号之间的数字{X}。该计数器从 0 开始。如果它设置为0,我们会得到1st元素,如果它设置为5,我们会得到6th元素等

请参阅此处使用的正则表达式

^(?:[^|]*\|){5}\K[^|]*

或者,如果\K您的正则表达式引擎不支持,您可以使用以下内容(第一个捕获组中的结果):

^(?:[^|]*\|){5}([^|]*)

解释

  • ^断言位置位于行的开头
  • (?:[^|]*\|){5} Match the following exactly 5 times
    • [^|]*匹配除以下字符外的任何字符|任意次数
    • \| Match |字面上地
  • \K重置比赛的起点。任何先前消耗的角色将不再包含在最终比赛中
  • [^|]*匹配除以下字符外的任何字符|任意次数
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式提取由管道分隔的字符串的第 n 个标记 的相关文章

  • 仅当锚点尚未存在时,正则表达式才用锚点替换网址

    我以前见过类似的问题 但没有一个有效的解决方案 我试图用锚标记替换页面上的所有网址 但仅限那些不在锚标记内的网址 so http google com http google com应替换为 a href http google com h
  • 将聊天文本中的成对符号替换为 html 标签,以设置粗体、斜体和删除线样式

    我正在尝试制作 Whatsapp 风格的文本帖子 当用户创建这样的文本时 Hi how are you where are you 然后这个文本会像这样自动改变 Hi你好吗你在哪 我知道我可以使用 php 正则表达式来做到这一点 如下所示
  • 使用特殊字符创建正则表达式

    我正在为 mongodb 创建一个查询 app get content title function req res var regexp new RegExp req params title i db find title regexp
  • R 中的匹配和计数字符串(DNA 的 k 聚体)

    我有一个字符串列表 DNA 序列 包括 A T C G 我想找到所有匹配项并插入到表中 该表的列都是这些 DNA 字母表的所有可能组合 4 k k 是每个匹配项的长度 K mer 必须由用户指定 行代表 DNA 字母表的数量在列表中按顺序匹
  • 正则表达式的替代(流畅?)界面设计

    我刚刚看到了一个巨大的 Java 正则表达式 这让我对正则表达式的一般可维护性进行了一些思考 我相信大多数人 除了一些糟糕的 Perl 贩子 都会同意正则表达式很难维护 我正在考虑如何解决这种情况 到目前为止 我最有希望的想法是使用流畅的界
  • 正则表达式匹配非整数?

    尝试创建一个忽略正确整数的正则表达式 1 5 999等 和正斜杠 但在其他所有内容中都找到匹配项 例如 它将找到以下匹配项 test test1 test 1 但忽略了 1 55 7 这是为了模组重写 0 9 我想应该可以解决这个问题 它将
  • 为什么 PCRE 正则表达式比 C++11 正则表达式快得多

    一些示例代码 这是使用 cregex iterator 的 c 11 部分 std chrono steady clock time point begin0 std chrono steady clock now regex re
  • 如何删除空 html 标签(其中包含空格和/或其 html 代码)

    需要 preg replace 的正则表达式 这个问题没有在 另一个问题 中得到回答 因为并非我要删除的所有标签都不为空 我不仅要从 HTML 结构中删除空标签 还要删除包含换行符以及空格和 或其 html 代码的标签 可能的代码是 删除匹
  • 如何在 Eclipse 中使用正则表达式将大写字母替换为小写字母?

    我想检查所有源代码文件并替换所有出现的k Xyyy with k xyyy 交换后面的第一个字母k 从大写到小写 我正在使用 Eclipse 对话框来搜索和替换多个文件 现在我有正则表达式 bk A Z 如何指定正则表达式的替换字符串 我刚
  • RestEasy @Path 正则表达式问题

    是否可以使用可选路径变量定义路径 就像下面的 uri app make make model model year year mileage mileage fuelType fuelType maxPrice maxprice trans
  • 实现词法分析器时,DFA 与正则表达式?

    我刚刚学习如何编写编译器 所以如果我有任何错误的说法 请纠正我 当人们可以简单地使用正则表达式时 为什么还要在代码中实现 DFA goto 语句 表驱动实现 据我了解 词法分析器接收一串字符并生成一个标记列表 这些标记在语言的语法定义中是终
  • 电话号码的正则表达式,不允许全零

    需要您的正则表达式帮助 我当前的正则表达式是 d 8 最小长度为 8 不允许包含字母 特殊字符和空格 我还想禁止全零 如 00000000 Thanks 该模式应该可以满足您的需求 0 d 8 The 0 部分是负前瞻 将阻止仅输入零 Ex
  • Python:在同一遍中计数和替换正则表达式?

    我可以全局替换正则表达式re sub 我可以计算匹配项 for match in re finditer count 有没有办法将这两者结合起来 以便我可以计算替换次数 而无需对源字符串进行两次传递 注意 我对替换是否匹配不感兴趣 我感兴趣
  • 如何在 MSVS 2012+ 编辑器(和 .NET?)中使用正则表达式替换插入“\”+“n”

    在 Visual Studio 2013 的编辑器中 我理解它与 2012 非常相似 据称使用 NET 正则表达式 我无法获取替换字符串来插入反斜杠和 n 这可能吗 我想插入 n 在第一个 之后 在 C 程序的某些 但不是全部 行上 即使字
  • 我可以使用正则表达式匹配粗体文本吗?

    我有一个文本打击 我想匹配所有粗体文本 因此 在不依赖前缀 即序列号 的情况下 我可以使用正则表达式仅匹配粗体字符吗 斯伯丁 K L Buchholz B A Bergman L E Druid H Fris n J 法医学 核试验写在牙齿
  • 如何通过逗号分隔将 2 行合并为一行?

    我需要将这些单独的行合并到一列 我现在如何通过逗号分隔合并列 CID Flag Value 1 F 10 1 N 20 2 F 12 2 N 23 2 F 14 3 N 21 3 N
  • 正则表达式没有按预期工作?

    我有这个正则表达式 new RegExp a z 0 9 ig 我正在测试一个不应该工作的字符串 vc 但它确实通过了测试 而且它不应该 new RegExp a z 0 9 ig test vc true 但如果我删除其中一个 or or
  • 如何使用 PHP 以任意顺序进行字符搜索(12 个字母,其中 6 个字母构成一个单词)?

    我整天都在想这个问题 似乎无法找出一种记忆有效且快速的方法 问题是 例如 我有这些信 e f j l n rr t t u w x 12 个字母 我正在找这个词 海龟 6 个字母 如何使用 php 找到完整范围 12 个单词 中所有可能的单
  • 需要初学者 PHP 帮助

    我学习 PHP 一段时间了 我想要一个澄清 我见过preg match使用不同的分隔符号调用函数 例如 preg match and preg match 今天我还看到了 正在使用 我的问题分为两部分 所有字符都可以使用什么 有一个标准吗
  • 将两个sql查询合并为一个查询

    如何组合以下 2 个查询以便获得两列 PAYMODE 和付款类型 两个查询都很相似 并且针对同一个表 将两个 sql 查询合并为一个查询 这样我就不需要执行两个单独的查询 SELECT ETBL DESC TXT as PAYMODE FR

随机推荐