【问题标题】:Capture groups in 1 line with fixed delimiters使用固定分隔符在 1 行中捕获组
【发布时间】:2022-10-17 05:26:59
【问题描述】:

我是正则表达式的初学者,但仍然不太了解。对于任何错误的符号或丢失的信息,我提前道歉:(

我需要从电子邮件主题中提取组,我必须在流程中进一步使用每个值以用作文件夹或文档名称。

示例:123456/TEXT/567890/01Moretext

我需要获取以下文本:

123456
TEXT
567890
01Moretext

单独的正则表达式命令.

到目前为止,我有:

  1. ^\d{6},这给了我123456
  2. (?<=/)[^/]*,这给了我TEXT
  3. 我不知道如何提取第三组, 567890
  4. [^/]*$,这给了我01Moretext

    任何可以防止我的头爆炸的帮助将不胜感激!

【问题讨论】:

  • 为什么不在/ 上拆分?
  • 我以为我在这样做?我什至不确定现在如何执行此操作以及如何在正则表达式中捕获它......就像如何捕获第一组以及如何捕获第二组......
  • 问题描述听起来就像您使用的语言或工具将整个匹配返回为“组 0”,将第一个括号表达式返回为组 1。没有看到您的代码,我们只能推测。请查看regex 标签说明,它解释了您需要在问题中包含的内容。
  • 我在 OCR 扫描工具“Umango”中使用正则表达式,其中正则表达式都以 REGEX(...) 开头我不知道要添加什么......
  • 尝试将模式写为/(?<=\/)[^\/]+|[^\/]+(?=\/)/gm 请参阅regex101.com/r/oym1v0/1

标签: regex regex-group


【解决方案1】:

您可以使用

[^/]+(?=/[^/]*$)

请参阅regex demo细节

  • [^/]+ - 除了/ 之外的一个或多个字符
  • (?=/[^/]*$) - 一个正向前瞻,需要 / 和一个或多个除 / 之外的字符,直到字符串结束。

【讨论】:

    猜你喜欢
    • 2021-08-22
    • 2021-11-24
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多