是否可以使用正则表达式的任何子结果来组成整个正则表达式,请考虑以下代码段:
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/