import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(\\S+(?: \\S+)*): *(\\S+(?: \\S+)*)";
final String string = "OK\n"
+ "AT!GSTATUS?\n"
+ "!GSTATUS:\n"
+ "Current Time: 2420 Temperature: 30\n"
+ "Reset Counter: 1 Mode: ONLINE\n"
+ "System mode: LTE PS state: Attached\n"
+ "LTE band: B30 LTE bw: 10 MHz\n"
+ "LTE Rx chan: 1234 LTE Tx chan: 12345\n"
+ "LTE CA state: NOT ASSIGNED\n"
+ "EMM state: Registered Normal Service\n"
+ "RRC state: RRC Idle\n"
+ "IMS reg state: No Srv\n\n"
+ "PCC RxM RSSI: -74 RSRP (dBm): -103\n"
+ "PCC RxD RSSI: -74 RSRP (dBm): -104\n"
+ "Tx Power: 0 TAC: 123A (1234)\n"
+ "RSRQ (dB): -12.4 Cell ID: 1234AB56 (12345678)\n"
+ "SINR (dB): 9.4";
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