正则表达式替换值

时间:2019-07-26 02:47:31

标签: node.js regex regex-group

输入:

.city.playground[?(@.playhouse == 'true' && @.IsPoolAvailable=='true')].checked]

输出:

.city.poolavailable.checked

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

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

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

3 个答案:

答案 0 :(得分:1)

您需要转义正则表达式中的特殊字符。使用:

playground\[\?\(@\.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");

Demo

答案 1 :(得分:0)

您可以尝试以下正则表达式:playground\[\?\( @\.IsPoolAvailable=='true'\)\]

答案 2 :(得分:0)

您可以使用捕获组来解决它,如下所示:

result.replace(/(\.city\.).*?(\.checked)\]/i,'$1poolavailable$2');
click here to look at