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

Regex分组拆分问题:如何将指定消息按规则拆分为多个分组

正则实现方案

核心思路

匹配以[标签名]开头的片段,捕获标签名和对应内容,直到遇到下一个[标签名]或字符串结尾,支持任意数量的分组。

正则表达式

\[(\w+)\]\s*(.*?)(?=\s*\[\w+\]|$)

规则解释

  • \[(\w+)\]:匹配[标签名]格式的前缀,将标签名(如Rule、Source)捕获到分组1
  • \s*:匹配标签与内容之间的任意空白字符(空格、制表符等)
  • (.*?):非贪婪模式匹配标签对应的内容,捕获到分组2,避免过度匹配后续内容
  • (?=\s*\[\w+\]|$):正向预查,确保匹配停止在下一个标签开头或者字符串末尾

匹配示例

针对输入:[Rule] 'Server - update repository' [Source] 10.10.10.10 [User] _Server [Content] HTTP GET http://example.com

会得到4组匹配结果(每组含两个捕获项):

  • 分组1: Rule,分组2: 'Server - update repository'
  • 分组1: Source,分组2: 10.10.10.10
  • 分组1: User,分组2: _Server
  • 分组1: Content,分组2: HTTP GET http://example.com

关键提示

非贪婪模式.*?是实现多分组正确拆分的核心,若改为贪婪模式.*会直接匹配到字符串末尾,无法拆分多个分组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:31:07