Hello fellow programmers
i have a small problem and can't seem to find the right answere.
So my idea is i get a String with a predefined function from me. It will look something like this:
String expression = "map(%set@IDENTIFIER%, get(%key@Longitude:Number%), get(%key@Latitude:Number%), map(%set@IDENTIFIER%, get(%key@Longitude:Number%), get(%key@Latitude:Number%)))";
It can be much more complicated or even simpler when i only use get for example.
What i want to do is to split every function in to its parameter this can also be functions or a normal String or Number.
What i thought is i can use regex to do this but i can't seem to find the right thing.
My regex so far:
String regex = "((?<method>map|get)\\((?<parameter>\\%(?<dynamic>set\\@[a-zA-Z_]+|\\$[0-9]+|key\\@[a-zA-Z_]+|set\\@[a-zA-Z_]+)(?<type>:[a-zA-Z]+)*\\%,*)+\\))";
What i do is
Pattern pa = Pattern.compile(regex);
Matcher m = pa.matcher(expression);
while (m.find()) {
System.out.println("Method " + m.group("method"));
System.out.println("Parameter " + m.group("parameter"));
System.out.println("Type" + m.group("type"));
}
My Output is than this:
Method get
Parameter %key@Longitude:Number%
Type:Number
Method get
Parameter %key@Latitude:Number%
Type:Number
Method get
Parameter %key@Longitude:Number%
Type:Number
Method get
Parameter %key@Latitude:Number%
Type:Number
But what i miss is the function map with all its parameter.
Hope it is kind of understandable what i mean.

maps. See demo. Java regex does not support recursion.