用正则表达式替换嵌入在大括号中的所有子字符串,后跟等号和数字

问题描述 投票:1回答:1

在下面的字符串中

String toBeFormatted= "[[LngLatAlt{longitude=-7.125924901999952, latitude=33.831783175000055, altitude=NaN},
 LngLatAlt{longitude=-5.401396163999948, latitude=35.92213140900003, altitude=NaN}]]"

1-我需要替换所有的“ LngLatAlt {longitude =” 用开括号“ [”

2-还需要替换所有中间的“,纬度= 33.831783175000055,海拔= NaN}” 用“,33.831783175000055]”

这样,我的字符串结果:

"[[[-7.125924901999952,33.831783175000055],[-5.401396163999948,35.92213140900003]]]"

尝试以下reg exp:

        String regexTarget = "(\\[\\[LngLatAlt\\{longitude=)";
        toBeFormatted.replaceAll(regexTarget, "\\[\\[\\[");
        String regexTarget0 = "(, altitude=NaN\\}, LngLatAlt\\{longitude=)";
        toBeFormatted.replaceAll(regexTarget0, "],\\[");
        String regexTarget1 = "(, latitude=)";
        toBeFormatted.replaceAll(regexTarget1, " ,");
        String regexTarget2 = "(, altitude=NaN\\})";
        toBeFormatted.replaceAll(regexTarget2, "]");

但似乎不起作用。

谢谢您的帮助。

java regex replaceall
1个回答
1
投票

尝试类似:

String result = toBeFormatted.replaceAll("LngLatAlt\\{longitude=([^,]+), latitude=([^,]+), ([^}]+)\\}", "[$1, $2]");
System.out.println(result);
© www.soinside.com 2019 - 2024. All rights reserved.