将嵌套括号与JavaScript RegEx匹配

时间:2019-02-12 16:45:51

标签: javascript regex string

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

字符串:

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

结果:

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

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

1 个答案:

答案 0 :(得分:0)

您可以使用以下表达式:

/                     // 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]);