>我已经做了一些搜索,并希望就此问题提供建议:
我想用"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"]"));