带有替换全部的正则表达式



>我已经做了一些搜索,并希望就此问题提供建议:

我想用"labels":["Webapp"]替换"labels":"Webapp"

我发现正则表达式("labels":")+(([a-zA-Z]|s|-)+)+(")具有以下替换"labels":["$2"]

我使用方法replaceAll和Talend编辑器。

我写output_row.json = output_row.json.replaceAll("("labels":")+(([a-zA-Z]|s|-)+)+(")",""labels":["$2"]");但它不起作用。

消息 détaillé: 无效的转义序列(有效的转义序列为 \b \t \f \r \" \' \ (

然后我逃脱了角色,我做到了:

output_row.json = output_row.json.replaceAll("(\"labels\":\")+(([a-zA-Z]|\s|-)+)+(\")",""labels":["$2"]");

但它还没有用。

你能帮帮我吗?

谢谢。

问题:不要逃避-:它们不是regex中的特殊字符

使用\s和转义"进行转义s,就像您在第二个示例中所做的那样 "labels":["$2"]

虽然你可以使用更简洁的正则表达式并结合你的\s-里面character class []

您可以使用("labels":")+([a-zA-Z -]+)

System.out.println("labels":"Webapp"
        .replaceAll("("labels":")+([a-zA-Z -]+)""
                , ""labels":["$2"]"));

最新更新