Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用部分regexp结果集进行匹配 是否可以使用ReGEXP中的任何子结果组成整个ReGEXP,考虑这个片段: var ret = "{hello} {world}"; ret = ret.replace(/(^|[^{}])(\{|\})([^{}]|$)/g, '$1$2$2$3'); ret; // {{hello}} {{world}}_Javascript_Regex_Replace - Fatal编程技术网

Javascript 使用部分regexp结果集进行匹配 是否可以使用ReGEXP中的任何子结果组成整个ReGEXP,考虑这个片段: var ret = "{hello} {world}"; ret = ret.replace(/(^|[^{}])(\{|\})([^{}]|$)/g, '$1$2$2$3'); ret; // {{hello}} {{world}}

Javascript 使用部分regexp结果集进行匹配 是否可以使用ReGEXP中的任何子结果组成整个ReGEXP,考虑这个片段: var ret = "{hello} {world}"; ret = ret.replace(/(^|[^{}])(\{|\})([^{}]|$)/g, '$1$2$2$3'); ret; // {{hello}} {{world}},javascript,regex,replace,Javascript,Regex,Replace,但是当我把{放在一起时,上面的regexp将失败,这也是有意义的,因为我测试的不是{或字符串的开头,然后是{}中的一个,然后是{}或字符串的结尾: var ret = "{hello}{world}"; ret = ret.replace(/(^|[^{}])(\{|\})([^{}]|$)/g, '$1$2$2$3'); ret; // {{hello}{world}} 是否可以使用第一个结果集生成第二个结果集,然后再生成第三个结果集: /(^|[^{}])($1)([^{}]|$)/g,

但是当我把
{
放在一起时,上面的regexp将失败,这也是有意义的,因为我测试的不是
{
或字符串的开头,然后是
{}
中的一个,然后是
{}
或字符串的结尾:

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
我知道我可以使用multiply
·replace
方法调用,但只要有一个方法调用就好了

谢谢



不要考虑代码的可读性。

< P>反向引用,例如“代码> 1”/代码>听起来像你正在寻找的(如果我正确地理解了你的问题)。

这一个ReXEXP对你有用吗?< /P>

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

p、 我不太确定你想要达到什么目的。

这离找到答案又近了一步:)你的代码的目标到底是什么?但是我把它改成只替换
{
x1和x2而不是xN+1:
ret.replace(/[{]{1,2}(.*?[}]{1,2}/g,{{$1}}'))
这并不能回答我问题的实质,但却为我的问题提供了一个解决方案:)我只是愚蠢地没有看到这一点。在试图弄清楚正则表达式之前的内容时,我睁大了眼睛……谢谢