Javascript 用许多表达式替换正则表达式的高级方法

Javascript 用许多表达式替换正则表达式的高级方法,javascript,regex,replace,Javascript,Regex,Replace,我在regex的文档中没有找到解决当前问题的方法。我正在使用javascript、html。 我的代码如下: var text = 'This [close](animal) is a dog'; 我想使用正则表达式获取此值: 'This {animal} is a dog'; 我的意思是,我想用{和}替换'close'。 我知道,有一种解决方案是: var res = text.replace('[close](','{').replace(')','}'); 但在我的情况下,我有很多规

我在regex的文档中没有找到解决当前问题的方法。我正在使用javascript、html。 我的代码如下:

var text = 'This [close](animal) is a dog';
我想使用正则表达式获取此值:

'This {animal} is a dog';
我的意思是,我想用{}替换'close'。 我知道,有一种解决方案是:

var res = text.replace('[close](','{').replace(')','}');
但在我的情况下,我有很多规则,我不想重复这一行。有时我会使用其他替代品,如'[xxxxx]'。 有什么想法吗?谢谢大家!

您可以使用

var text='This[close](动物)是一只狗';
console.log(text.replace(/\[^\][]*]\([^()]*)\)/g,“{$1}”)您可以使用

var text='This[close](动物)是一只狗';

console.log(text.replace(/\[^\][]*]\([^()]*)\)/g,“{$1}”)不要忘记,您可以在
数组.prototype.replace中传递自定义正则表达式。在您的情况下,它将是
text.replace(/[close](/g,{')
。您的问题的完整解决方案如下所示:

var res = res.replace(/\[\w+\]\((.*)\)/, (a, b) => {
  console.log(a, b);
  return `{${b}}`;
});

*
周围的括号用于在变量
b

中“捕获”动物。不要忘记,您可以在
数组中传递自定义正则表达式。prototype.replace
。在您的情况下,它将是
文本。replace(/[close](/g,{')
。您问题的完整解决方案如下:

var res = res.replace(/\[\w+\]\((.*)\)/, (a, b) => {
  console.log(a, b);
  return `{${b}}`;
});
*
周围的括号用于“捕获”变量中的动物
b

谢谢你,我已经根据你说的找到了解决方案

var res0 = text.replace(/\[close]\(([^()]*)\)/g, '{$1}');
var res1 = text.replace(/\[open]\(([^()]*)\)/g, '}$1{');
对不起,如果我弄错了,我不习惯英语表达,所以:-)

谢谢你,我已经根据你说的找到了解决办法

var res0 = text.replace(/\[close]\(([^()]*)\)/g, '{$1}');
var res1 = text.replace(/\[open]\(([^()]*)\)/g, '}$1{');

对不起,如果我犯了错误,我不习惯英语表达,所以:-)

恐怕这个问题目前还不清楚。也许是其他“规则”的例子?特别是,他们是否会改变你对动物的处理方式?@T.J.Crowder事实上很清楚:-)@IslamElshobokshy-事实上不是。我恐怕这个问题目前还不清楚。也许是其他“规则”的例子?特别是,他们是否会改变你对
animal
的操作?@T.J.Crowder事实上很清楚:-)@IslamElshobokshy-事实并非如此。它工作得很完美,但如果我用[open]更改[close],它会返回相同的结果,这不太好,例如:我想用[open]更改[close],它会返回相同的结果,这不好,例如:我想用[open]创建}animal{@遗憾的是,请提供一个具有预期输出的示例字符串。请注意,您可以根据自己的意愿将
[^\][]*
替换为
打开
关闭
,但如果您准确解释场景,可能会有更好的解决方案。请参阅更新后的答案。如果我将[close]更改为[open],则该解决方案会非常有效,它返回相同的结果,这不好,例如:我想让}animal{和[open]@pitiful请提供一个具有预期输出的示例字符串。注意,您可以替换
[^\][]*
如您所愿,使用
打开
关闭
,但如果您准确地解释场景,可能会有更好的解决方案。请参阅更新的答案。我已在一个步骤中包含了一个解决方案。请参阅。我已经很好地解释并解决了我的问题,非常感谢您。我已在一个步骤中包含了一个解决方案。请参阅。很好地解释ed解决了我的问题,非常感谢