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

如何使用正则表达式拆分[ab][ij][yz]类方括号文本为指定列表

方括号格式文本拆分通用正则方案

针对连续方括号包裹文本的拆分需求,以下正则写法简洁无冗余,适配绝大多数非嵌套的常规使用场景,不需要针对特定输入做额外调整。


提取结果保留外层方括号

使用正则:\[[^\[\]]+\]

匹配逻辑说明

  • \[ 转义匹配左方括号(方括号为正则特殊元字符,必须加反斜杠转义)
  • [^\[\]]+ 匹配1个及以上、既不是左方括号也不是右方括号的任意字符,从根源避免跨括号误匹配
  • \] 转义匹配右方括号

效果

对示例输入[ab][ij][yz]做全局匹配,直接得到结果:["[ab]", "[ij]", "[yz]"]


提取结果仅保留括号内内容

使用正则:\[([^\[\]]+)\]

匹配逻辑说明

在上述正则的基础上,给括号内的内容段加了捕获分组,提取每个匹配项的1号分组内容即可。

效果

对示例输入[ab][ij][yz]做全局匹配后提取分组内容,直接得到结果:["ab", "ij", "yz"]


适配调整说明

  • 如果需要兼容空方括号[]的提取,把正则里的+(匹配1次及以上)改成*(匹配0次及以上)即可
  • 该正则支持括号内包含空格、数字、特殊符号的场景,比如输入[a!b][c d][12_3]也能正确拆分
  • 如果输入中夹杂非方括号包裹的零散字符(比如[ab]xxx[ij]),正则会自动跳过零散字符,只提取有效方括号段
  • *注意:正则无法处理嵌套方括号场景(比如[a[b]c]),如果存在嵌套结构,建议用简单的栈遍历逻辑做解析,常规场景下上述正则完全够用。

代码示例(JavaScript)

const testStr = "[ab][ij][yz]";

// 保留方括号的提取结果
const withBracket = testStr.match(/\[[^\[\]]+\]/g);
console.log(withBracket); // 输出: ["[ab]", "[ij]", "[yz]"]

// 仅保留括号内内容的提取结果
const innerContent = [...testStr.matchAll(/\[([^\[\]]+)\]/g)].map(match => match[1]);
console.log(innerContent); // 输出: ["ab", "ij", "yz"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.10 16:15:45