import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?<=gps.longitude)(\\s*)(:\\s)(?<lon>.*)\\n.*(?<=gps.latitude)(\\s*)(:\\s)(?<lat>.*)";
final String string = "modem.location.3gpp.mcc : 310\n"
+ "modem.location.3gpp.mnc : 260\n"
+ "modem.location.3gpp.lac : FFFE\n"
+ "modem.location.3gpp.tac : 7D84\n"
+ "modem.location.3gpp.cid : 027A6B84\n"
+ "modem.location.gps.nmea.length : 5\n"
+ "modem.location.gps.nmea.value[1] : $GPGSA,A,2,08,10,18,22,24,32,,,,,,,1.2,0.9,0.8*36\n"
+ "modem.location.gps.nmea.value[2] : $GPRMC,194501.0,A,2947.759106,N,09534.022631,W,0.0,0.0,090922,3.2,E,A*15\n"
+ "modem.location.gps.nmea.value[3] : $GPGSV,3,1,10,08,09,303,31,10,53,343,29,15,02,053,19,18,43,147,26*71\\r\\n$GPGSV,3,2,10,22,31,239,31,24,34,057,29,27,23,268,21,31,00,196,19*76\\r\\n$GPGSV,3,3,10,32,55,260,22,46,,,34*48\n"
+ "modem.location.gps.nmea.value[4] : $GPVTG,0.0,T,356.8,M,0.0,N,0.0,K,A*2B\n"
+ "modem.location.gps.nmea.value[5] : $GPGGA,194501.0,2947.759106,N,09534.022631,W,1,06,0.9,28.1,M,-21.0,M,,*57\n"
+ "modem.location.gps.utc : 194501.0\n"
+ "modem.location.gps.longitude : -95.567044\n"
+ "modem.location.gps.latitude : 29.795985\n"
+ "modem.location.gps.altitude : 28.100000\n"
+ "modem.location.cdma-bs.longitude : --\n"
+ "modem.location.cdma-bs.latitude : --";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html