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

如何编写正则表达式匹配表格分隔行的所有单元格片段

正则解析Markdown表格分隔行实现方案

问题说明

需要通过正则表达式解析Markdown表格的分隔行,测试输入样例如下:

|---|---|---|
|---|---|---|

最初编写的正则为 /^(?<indent>\s*)\|(?<cell>-+|)/g,只能匹配到每行第一个单元格片段,无法捕获后续单元格,要求不对连字符-的数量做固定限制,最终要拿到类似["---|", "----|", "---|"]格式的单元格数组。

缺陷原因

原正则加了^行首锚点,开启全局匹配时,只有整行最开头的位置能满足锚点校验规则,后续的单元格片段都不在行首位置,自然无法被命中。

修正后的正则

直接使用下面这个正则开启全局匹配即可:

/(?<indent>^\s*)?\|(?<cell>-+\|)/g

匹配逻辑

  • (?<indent>^\s*)?:只在行首位置捕获开头的缩进空白,非行首位置这个分组不生效,不会干扰后续单元格的匹配
  • \|:匹配单元格之间的竖线分隔符
  • (?<cell>-+\|):捕获1个及以上连字符加末尾竖线组成的单元格片段,完全不限制连字符的长度
  • 搭配g全局匹配标志,遍历所有匹配结果提取cell分组的内容,就能得到需要的单元格数组。

效果验证

针对给出的两行样例,第一行带前导空格的 |---|---|---|会捕获到三个---|片段,第二行无前导空格的|---|---|---|也会正常捕获三个---|片段;如果遇到连字符数量不一致的单元格(比如|----|),也能正常识别,完全满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:06:26