You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式匹配RFC5424结构化数据(避免][间含空格的情况)

匹配RFC5424结构化数据的正则表达式解决方案

需求与问题

需要编写正则表达式匹配RFC5424标准的结构化数据,核心规则:

  • 仅匹配格式为[标识符@编号 key="value" ...]的内容,其中key="value"可重复出现
  • 同一行的多个括号组必须无空格直接连接(如[组1][组2]),若][之间有空格、括号前后带空格(如] [或[ ),则视为无效,不予匹配

之前尝试过多个正则变体,比如:

\[\S[a-zA-Z0-9]+@[0-8]+((\s[a-zA-Z]+=".+")+[\]]+)+

但始终无法过滤掉包含空格的无效情况,比如括号后带空格的场景。

测试数据

# 无效案例(不匹配)
invalid (do not match); should not match, space between ][
[Example1SDID@32473 iut="3" eventSource="Application" eventID="1011"] [example1gPriority@32473 class="high"]; should not match, space after [ and/or ][ 
Example2aSDID@32473 iut="3" eventSource="Application" eventID="1011"][example2fPriority@32473 class="high"][Example2bSDID@32473 iut="3" eventSource="Application" eventID="1011"][ example2ePriority@32473 class="high"][Example2cSDID@32473 iut="3" eventSource="Application" eventID="1011" ][ example2dPriority@32473 class="high"][Example3SDID@32473 iut="3" eventSource="Application" eventID="1011"][example2Priority@32473 nothing][Example2SDID@32473 iut="3" eventSource="Application" eventID="1011"][example2Priority@32473 class="high" ][Example2SDID@32473 iut="3" eventSource="Application" eventID="1011"][example2Priority@32473 class="high" ][this@that][example2Priority@32473 nothing][example4SDID@32473 iut="3" eventSource="Application" eventID="1011" ][asldkf;asd;fjas;dfj;asdjkf;asjkdffkdk][asdfas;dfjasdfdfdss]

# 有效案例(匹配)
valid (match)
[example4SDID@32473 iut="3" eventSource="Application" eventID="1011"][example5SDID@32473 iut="3"][example6SDID@32473 iut="3" eventSource="Application" eventID="1011"][example6Priority@32473 class="high"]

正确正则表达式

^\[(?:[a-zA-Z0-9]+@[0-8]+(?:\s+[a-zA-Z]+="[^"]*")*)\](?:\[(?:[a-zA-Z0-9]+@[0-8]+(?:\s+[a-zA-Z]+="[^"]*")*)\])*$

正则解析

  • ^ + $:限定整行匹配,避免部分匹配无效内容
  • \[ + \]:匹配成对的方括号,确保括号前后无空格
  • [a-zA-Z0-9]+@[0-8]+:匹配RFC5424的结构化数据标识符(字母数字@0-8数字)
  • (?:\s+[a-zA-Z]+="[^"]*")*:匹配任意数量的key="value"对,[^"]*确保只匹配双引号内的内容,防止跨括号匹配
  • (?:\[(?:...)\])*:匹配多个连续无空格连接的括号组,确保][之间无空格

匹配效果

  • 完全匹配所有符合规则的有效行
  • 自动过滤包含空格的无效案例(括号前后空格、][间空格)
  • 支持单个或多个连续的合法括号组

内容的提问来源于stack exchange,提问作者josh assing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 03:25:02