【问题标题】:Regex: Capture after word and until end of string or another specific word [closed]正则表达式:在单词之后捕获,直到字符串结尾或另一个特定单词 [关闭]
【发布时间】:2022-08-19 01:33:17
【问题描述】:

我正在尝试使用正则表达式从 Microsoft Kusto 中提取一些数据。虽然我不认为它属于任何规范,但它被描述为here:\'到目前为止所描述的语法是大多数传统的 Unix egrep 正则表达式语法。\'

我有一堆日志条目,大部分时间都有

错误原因:..... 注释:....

\"ErrorReason:\" 几乎总是存在,但可能不在这种情况下,我希望为空来提取 \"\" (或不匹配)。 \"ErrorReason:\" 之后和 \"Notes:\" 之前的任何内容都将被提取为错误原因。如果没有 \"Notes:\" 字符串,那么后面的所有内容 \"ErrorReason:\" 将被提取为错误原因。 \"Notes:\" 之后的任何内容都将被提取为注释。如果没有 \"Notes:\" 字符串,则没有注释(\"\" 或不匹配)。

正则表达式需要处理 \"ErrorReason\" 和 \"Notes\" 的存在和缺失。如果没有 \"ErrorReason\" 字符串,则不会捕获错误原因,但如果存在,Notes 可能会捕获。

我如何构建一个单一的正则表达式,它会根据这些例子给我描述的结果:

  1. \"ErrorReason:这是一个错误。注释:这些是注释。\"

  2. \"ErrorReason: 这是另一个错误。\"

  3. \"香蕉是黄色的。注意事项:其他一些注意事项\"

  4. \"苹果可能是绿色的\"

    我希望能够捕获 ErrorReason:

    1. \"这是一个错误。\"
    2. \"这是另一个错误。\"
    3. \"\"
    4. \"\"

      和注意事项:

      1. \"这些是注释。\"
      2. \"\"
      3. \"其他一些注释\"
      4. \"\"
  • 从您当前的样本来看,它或多或少是在猜测。什么子串总是存在的?错误消息和注释可以包含哪些字符?您使用什么工具/语言?也许like this 有帮助...您提供的信息越多,您将获得更好的答案:)

标签: regex regex-group


【解决方案1】:

这是一个可以开始的例子,但我不确定句子的格式是否足够一致,因为只有两个例子:

"Th(is|ese).+?\."

【讨论】:

    猜你喜欢
    • 2013-12-06
    • 2021-11-21
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    相关资源
    最近更新 更多