Q:

part String at particular position (#17. and #5.)

I have the following gps position String 
#114.034407,E,22.648272,N,0.00,0.00#010104#004500#17.034407,E,22.648272,N,0.00,0.00#010104#004500#5.034407,E,22.648272,N,0.00,0.00#010104#004500

and I want to part it the longitude position (#17.,#5.). All longitudes position starts with # and contains . point after the fitst or first and second or first, second and third. How can I get this result with regular expression?
Result:
#114.034407,E,22.648272,N,0.00,0.00#010104#004500
#17.034407,E,22.648272,N,0.00,0.00#010104#004500
#5.034407,E,22.648272,N,0.00,0.00#010104#004500

Code
  Pattern pattern = Pattern.compile("regular expression");
    Matcher matcher = pattern.matcher(gpsPacket);
    matcher.matches();

A:

You can use this regex:
(?=#\d{1,3}\.)

with this code:
import java.util.*;
import java.lang.*;
import java.io.*;

class YourClass
{
    public static void main (String[] args) throws java.lang.Exception
    {
        String str = "#114.034407,E,22.648272,N,0.00,0.00#010104#004500#17.034407,E,22.648272,N,0.00,0.00#010104#004500#5.034407,E,22.648272,N,0.00,0.00#010104#004500";
        String delimiters = "(?=#\\d{1,3}\\.)";

        String[] coordinates = str.split(delimiters);
        for(String coordinate : coordinates) {
            System.out.println(coordinate);
        } 
    }
}

It will split the string on a # followed by 1 to 3 number then a dot. Live demo

