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

Java如何使用正则表达式匹配提取大括号之间的文本内容

大括号间内容的正则匹配实现方法
  • 无嵌套场景,仅提取大括号内内容(不包含大括号本身)
    通用正则:/{([^}]*)}/
    匹配后取第1个捕获组即可得到大括号内部的内容,[^}]*会匹配所有非右大括号的字符,自动在第一个右大括号位置终止,不会出现贪婪匹配越界的问题。如果需要匹配带换行的内容,可以在正则后加对应引擎的单行匹配标记,比如Python中加re.DOTALL,JS中加s标记写成/{([^}]*)}/s。
  • 有大括号嵌套场景
    支持PCRE正则引擎的环境(Python、Java、PHP等)可以使用递归正则:/{((?:[^{}]|(?R))*)}/,取第1个捕获组得到最外层大括号内部的所有内容。
    不支持递归正则的环境(如JavaScript),可以通过字符遍历计数实现,示例代码如下:
    function extractBraceContent(input) {
      const res = []
      let depth = 0, start = 0
      for (let i = 0; i < input.length; i++) {
        if (input[i] === '{') {
          depth++
          if (depth === 1) start = i + 1
        } else if (input[i] === '}') {
          depth--
          if (depth === 0) res.push(input.slice(start, i))
        }
      }
      return res
    }
    

内容的提问来源于stack exchange,提问作者Владислав Загородний

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:48:03