在 javascript 中使用正则表达式从内到外获取 pharanteses 之间的全部内容

Posted

技术标签:

【中文标题】在 javascript 中使用正则表达式从内到外获取 pharanteses 之间的全部内容【英文标题】:Get entire content between pharanteses using regex from the inside to out in javascript 【发布时间】:2021-10-24 04:46:37 【问题描述】:

例子

var str = "%function1(%function2(%function2(content)))"

我想在 pharanteses 之间从内到外获得完整的输出

输出

[
   [
      '%function2(content)',
      'content',
      '--'
   ],
   [
      '%function2(%function2(content))',
      '%function2(content)',
      '--'
   ],
   [
      '%function1(%function2(%function2(content)))',
      '%function2(%function2(content))',
      '--'
   ]
]

【问题讨论】:

【参考方案1】:

可能是这样的:

const str = "%function1(%function2(%function2(content)))";

const parts = str.split(/([()])/);
const middle = Math.floor(parts.length / 2);

const levels = [parts[middle]];
for (let i = middle - 1, j = middle + 1; i > 0; i -= 2, j += 2) 
  levels.push(
    `$parts[i - 1]$parts[i]$levels[levels.length - 1]$parts[j]$parts[j + 1]`
  );


const result = [];
for (let i = 0; i < levels.length - 1; i++) 
  result.push([levels[i + 1], levels[i], '--']);


console.log(JSON.stringify(result, null, '  '));

【讨论】:

以上是关于在 javascript 中使用正则表达式从内到外获取 pharanteses 之间的全部内容的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript-ECMAScript之作用域

SQL 'FROM UNNEST' 的语义是啥?

linux学习一个服务(未完)

第十一课 使用子查询

复杂的函数声明

js事件