Node.js 要替换值的正则表达式

Node.js 要替换值的正则表达式,node.js,regex,regex-group,Node.js,Regex,Regex Group,输入: .city.playhouse[?(@.playhouse='true'和&&&&.IsPoolAvailable='true')。选中] 输出: .city.poolavailable.checked 将输入转换为输出的正则表达式: result = result.replace("playground[?(@.playhouse == 'true' && @.IsPoolAvailable=='true')]",'poolavailable'); 此正则表达式不呈现

输入:

.city.playhouse[?(@.playhouse='true'和&&&&.IsPoolAvailable='true')。选中]

输出:

.city.poolavailable.checked

将输入转换为输出的正则表达式:

result = result.replace("playground[?(@.playhouse == 'true' && @.IsPoolAvailable=='true')]",'poolavailable');

此正则表达式不呈现预期的输出。请帮助使用任何其他可使用的正则表达式。

您可以尝试以下正则表达式:
操场\[\?\(@\.IsPoolAvailable=='true'\)\]
您需要转义正则表达式中的特殊字符。使用:

playway\[\?\(@\.playhouse\s*==\s*'true'\s+&&&\s+\.IsPoolAvailable\s*=\s*'true'\)\](\.\s+\]

然后用
poolavailable$1
替换匹配项

result = result.replace("playground\[\?\(@\.playhouse\s*==\s*'true'\s+&&\s+@\.IsPoolAvailable\s*==\s*'true'\)\](\.\S+)\]", "poolavailable$1");

您可以使用捕获组来解决此问题。如下所示:
result.replace(/(\.city\).*(\.checked)\]/i,“$1可用$2”)特殊字符需要转义。我尝试了:result=result.replace('playway[\?(@\.IsPoolAvailable=='true')],'checked');它在参数列表后抛出一个错误(缺少):
result=result.replace(“游乐场\[\?\(@\.IsPoolAvailable=='true'\)\”,'poolavailable')`.*+?^${}()|[]`是特殊字符我用更新的输入和输出编辑了问题。此外,我尝试了上面的方法,但仍然不起作用。我理解特殊字符应该被删除。也许我遗漏了一些容易被忽略的东西。我运行了result=result.replace(/\.playhouse[\?(@\.playhouse\s*==\s*'true'\s+&&&&s+\.IsPoolAvailable\s*==\s*'true')]/g,“poolavailable”);在节点中,我的输入文件中没有任何更改。更新答案后,您能否验证这是否正确?结果=结果。替换(\.\s+=\s*=\s*='true'\s+&&\s+@\.IsPoolAvailable\s*==\s*'true')](\.\s+'),'poolavailable');我还丢失了参数列表错误。您需要替换为
poolavailable$1
。检查演示链接。也使用我在回答中给出的正则表达式,注释中的一个是错误的!是的,我完全是从演示中添加了正则表达式,将match替换为poolavailable$1。这与我在查询结果=result中添加它的方式有关。替换('playway[\?(@\.playhouse\s*==\s*'true'\s+&&&\s+\.IsPoolAvailable\s*==\s*'true'))(\.\s+),'poolavailable$1')您复制错误。演示有
操场\[
,而您有
操场[
(请参阅转义的[])。还有其他错误,所以只需复制粘贴即可。这有多困难?