输入:
.city.playground[?(@.playhouse == 'true' && @.IsPoolAvailable=='true')].checked]
输出:
.city.poolavailable.checked
将输入转换为输出的正则表达式:
result = result.replace("playground[?(@.playhouse == 'true' && @.IsPoolAvailable=='true')]",'poolavailable');
此正则表达式不会呈现预期的输出。请帮助使用任何其他正则表达式。
答案 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");
答案 1 :(得分:0)
您可以尝试以下正则表达式:playground\[\?\( @\.IsPoolAvailable=='true'\)\]
答案 2 :(得分:0)
您可以使用捕获组来解决它,如下所示:
result.replace(/(\.city\.).*?(\.checked)\]/i,'$1poolavailable$2');