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

Schwertfisch :

In the follwing String

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

1- I need to replace all "LngLatAlt{longitude=" with open bracket "["

2- also need to replace all the intermediate ", latitude=33.831783175000055, altitude=NaN}" with ",33.831783175000055]"

That way my string result :

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

try it the following 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, "]");

but it seems not working.

Thank you for your help.

User9123 :

try something like:

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

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=17925&siteId=1