首页 > 解决方案 > 使用 JavaScript RegEx 匹配嵌套括号

问题描述

我正在尝试编写一个 JavaScript RegEx,它返回括号之间的内容(可能包括嵌套括号),如本文中描述的解决方案(由 Java RegEx 实现)

细绳:

xxx
@connect(({ app }) => (
  {
    ...app
  }
))
xxx

结果:

({ app }) => (
  {
    ...app
  }
)

是否可以使用 JavaScript RegEx 解决它?

标签: javascriptregexstring

解决方案


您可以使用以下表达式:

/                     // start expression
  (?<=@connect\()     // positive lookbehind
  \(                  // open parenthesis
  (.|[\n\r])+         // anything, including new-lines
  \)                  // closed parenthesis
  (?=\)$)             // positive lookahead
/gm                   // global match, multiline

var re = /(?<=@connect\()\((.|[\n\r])+\)(?=\)$)/gm;
var s = `xxx
@connect(({ app }) => (
  {
    ...app
  }
))
xxx`

console.log(s.match(re)[0]);


推荐阅读