正则表达式提取由管道分隔的字符串的第 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 个标记 的相关文章

  • Perl 非贪婪

    我遇到非贪婪正则表达式 regex 的问题 我已经看到有关于非贪婪正则表达式的问题 但它们没有回答我的问题 Problem 我正在尝试匹配 lol 锚点的 href Note 我知道这可以通过 Perl HTML 解析模块来完成 我的问题是
  • Javascript Replace() 和 $1 问题

    我正在尝试创建一个脚本来搜索文本中的模式并在它找到的字符串周围包裹一个标签 shop attributes td each function this html function i html return html replace E 0
  • Java中使用正则表达式确定字符串是否为URL [重复]

    这个问题在这里已经有答案了 可能的重复 检查字符串是否为有效 URL 的最佳正则表达式是什么 https stackoverflow com questions 161738 what is the best regular express
  • 有人能给我一个 1 到 5 之间数字的正则表达式吗

    有人能给我一个 1 到 5 之间的单个数字的正则表达式吗 例如输入必须是 1 到 5 之间的数字 55 或 23 不匹配 尝试使用anchors http www regular expressions info anchors html
  • 删除emacs中多余的空行

    M x flush lines 删除缓冲区中的所有空白行 但是我只想删除多余的空白行 也就是说 如果有n个连续的空白行我想删除n 1并保留一个 我知道删除空白行可以完成该点下的空白行的工作 但是我想要一个适用于整个缓冲区的简单解决方案 有什
  • C++ 正则表达式,未知转义序列 '\.'警告

    我第一次尝试在 C 中使用正则表达式 我对转义序列有点困惑 我只是想匹配字符串开头的点 为此 我使用表达式 它有效 但我的编译器 g 生成警告 warning unknown escape sequence regex self regex
  • 用于验证 ip 列表中的 ip 范围的正则表达式

    我有正则表达式用于验证 50 个 ips 逗号分隔的列表 25 0 5 2 0 4 0 9 01 0 9 0 9 3 25 0 5 2 0 4 0 9 01 0 9 0 9 1 50 列表示例 10 10 10 1 127 0 0 1 现在
  • 正则表达式中的“g”标志是什么意思?

    的含义是什么g正则表达式中的标志 之间有什么区别 g and g用于全局搜索 这意味着它将匹配所有出现的情况 通常你还会看到i这意味着忽略大小写 参考 全局 JavaScript MDN https developer mozilla or
  • Laravel 验证规则仅针对字母

    我正在尝试添加验证规则以仅接受信件 我正在使用regex规则 但它仍然不起作用 下面是我的代码 Validate request input this gt validate request name gt required regex p
  • 正在获取“未终止 [] 设置”。 C# 中的错误

    我正在 C 中使用以下正则表达式 Regex find new Regex url
  • 局部变量或实例字段名称与正则表达式“[a-z]+”不匹配

    将 Android studio 升级到2 1 2 当我将旧项目导入其中时 我的代码中充满了警告 警告是 Instance field name doesn t match regex a z Local variable name doe
  • 如何在 DB2 中创建返回序列值的函数?

    如何在 DB2 中创建一个从序列中获取值并返回该值的函数 应该可以在 select 或 insert 语句中使用该函数 例如 select my func from xxx insert into xxx values my func 基本
  • 使用 preg_replace 仅替换第一个匹配项

    我有一个结构类似于以下的字符串 aba aaa cba sbd dga gad aaa cbz 该字符串每次都可能有点不同 因为它来自外部源 我只想替换第一次出现的 aaa 但其他人则不然 是否可以 可选的第四个参数预替换 http php
  • 如何匹配 R 中的所有匹配项?

    我有 1000 个名字的列表 说A 我还有另外 5 个名字的清单 说B 我想找出这5个名字出现在1000个号码列表中的第几行 例如 Amy 在 A 中可以出现 25 次 B 里有艾米 我想知道 Amy 出现在 A 中的哪些行 我以前使用过
  • 使用 URL 参数 ID 编号范围进行 HTACCESS 重定向

    我希望有人可以提供帮助 因为事实证明这很难弄清楚 我试图通过 HTACCESS 和 mod rewrite 重定向许多 URL 参数 ID 值在特定范围内 从 1 到 7603 的页面 这是我到目前为止所拥有的
  • 是否存在永远不会匹配任何字符串的正则表达式? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 用于在子字符串中用破折号替换空格的正则表达式。

    我一直在努力寻找一种方法 可以用字符串中的破折号替换空格 但只能替换字符串特定部分内的空格 Source ABC This is a sub string DEF 我对正则表达式的尝试 s g 如果我使用正则表达式来匹配空格并替换 我会得到
  • Python正则表达式从字符串中获取浮点数

    我正在使用正则表达式来解析字符串中的浮点数 re findall a zA Z d d t 是我使用的代码 这段代码有问题 如果数字和任何字符之间没有空格 则不会解析该数字 例如 0 1 2 3 4 5 6 7 8 9 的预期输出为 0 1
  • 我想找到 C# 代码中所有后面没有括号的 if 语句。通过正则表达式

    我想找到所有if声明和for后面没有大括号的语句 当你在一个文件中写入一行时if声明您大多不会将其括在大括号中 所以我想找到所有这些if and for声明 请帮忙 就像我想捕捉这个声明 if childNode Name B return
  • 正则表达式 - 匹配单词缩写

    我正在考虑提供以下正则表达式作为答案这个问题 https stackoverflow com questions 2110010 how to find wordpresss installed on domain or server pr

随机推荐