javascript - 使用正则表达式结果集的一部分进行匹配

标签 javascript regex replace

是否可以使用正则表达式的任何子结果来组成整个正则表达式,请考虑以下代码段:

var ret = "{hello} {world}";
ret = ret.replace(/(^|[^{}])(\{|\})([^{}]|$)/g, '$1$2$2$3');
ret; // {{hello}} {{world}}

但是当我将 }{ 放在一起时,上面的正则表达式将失败,这也是有道理的,因为我没有针对 }{ 或字符串的开头进行测试,然后{} 之一,然后又不是 {} 或字符串结尾:

var ret = "{hello}{world}";
ret = ret.replace(/(^|[^{}])(\{|\})([^{}]|$)/g, '$1$2$2$3');
ret; // {{hello}{world}}

是否可以使用第一个结果集生成第二个结果集,然后再生成第三个:

/(^|[^{}])($1)([^{}]|$)/g, '$1$2$2$3'
//         $1 - or something similarly

我知道我可以使用多个 ·replace 方法调用,但如果有一个就很酷了。

谢谢


不要考虑代码的可读性。

最佳答案

这个正则表达式适合你吗?

ret.replace(/[{]+(.*?)[}]+/g, '{{$1}}')

p.s.:我不太确定您要实现的目标。

关于javascript - 使用正则表达式结果集的一部分进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17592217/

相关文章:

javascript - 在 node.js 中返回空值?

javascript - phantomJS爬取多页面获取错序执行

java - 我如何剖析或分析这个正则表达式?

python - 在字符串中查找最重复(不是最常见)序列的算法(又名串联重复)

jquery - 使用 jQuery 动态替换图像源

java - android - 在包含特殊字符的特定字符串上使用 replaceAll 时出现 java.lang.ArrayIndexOutOfBoundsException

c# - 去掉字符串末尾的所有元音

php - 从提示符返回 javascript 数据到 html/php

javascript - 在单个网页上显示至少 100 个视频

python - 如何使用正则表达式捕获重复字符集?