【发布时间】:2022-08-19 01:33:17
【问题描述】:
我正在尝试使用正则表达式从 Microsoft Kusto 中提取一些数据。虽然我不认为它属于任何规范,但它被描述为here:\'到目前为止所描述的语法是大多数传统的 Unix egrep 正则表达式语法。\'
我有一堆日志条目,大部分时间都有
错误原因:..... 注释:....
\"ErrorReason:\" 几乎总是存在,但可能不在这种情况下,我希望为空来提取 \"\" (或不匹配)。 \"ErrorReason:\" 之后和 \"Notes:\" 之前的任何内容都将被提取为错误原因。如果没有 \"Notes:\" 字符串,那么后面的所有内容 \"ErrorReason:\" 将被提取为错误原因。 \"Notes:\" 之后的任何内容都将被提取为注释。如果没有 \"Notes:\" 字符串,则没有注释(\"\" 或不匹配)。
正则表达式需要处理 \"ErrorReason\" 和 \"Notes\" 的存在和缺失。如果没有 \"ErrorReason\" 字符串,则不会捕获错误原因,但如果存在,Notes 可能会捕获。
我如何构建一个单一的正则表达式,它会根据这些例子给我描述的结果:
-
\"ErrorReason:这是一个错误。注释:这些是注释。\"
-
\"ErrorReason: 这是另一个错误。\"
-
\"香蕉是黄色的。注意事项:其他一些注意事项\"
-
\"苹果可能是绿色的\"
我希望能够捕获 ErrorReason:
- \"这是一个错误。\"
- \"这是另一个错误。\"
- \"\"
- \"\"
和注意事项:
- \"这些是注释。\"
- \"\"
- \"其他一些注释\"
- \"\"
-
从您当前的样本来看,它或多或少是在猜测。什么子串总是存在的?错误消息和注释可以包含哪些字符?您使用什么工具/语言?也许like this 有帮助...您提供的信息越多,您将获得更好的答案:)
标签: regex regex-group