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

regular expression to replaceall substrings embedded in open curling brackets and followed by equal sign and digits

在下面的字符串中

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

1- 我需要将所有 "LngLatAlt{longitude=" 替换为左括号 "[

2-还需要把所有中间的",latitude=33.831783175000055,altitude=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, "]");

但它似乎不起作用。

感谢您的帮助。

试试这样的东西:

String result = toBeFormatted.replaceAll("LngLatAlt\{longitude=([^,]+), latitude=([^,]+), ([^}]+)\}", "[, ]");
System.out.println(result);