import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^\\[MSG\\]\\n[\\d ]+\\n{2}\\d{15}\\n\\d{4}mV\\n\\d{2}\\n\\d,\\d,\\d\\n?\\*{0,2}(\\d{10})?\\*{0,2}\\n{2}\\[READINGS\\]\\n(?m:([\\d\\s,]*))\\[MSGEND\\]$";
final String string = "[MSG]\n"
+ "4 031116 080423\n\n"
+ "543215432154321\n"
+ "3711mV\n"
+ "30\n"
+ "1,0,0\n"
+ "**1234567890**\n\n"
+ "[READINGS]\n"
+ "00451,00450,00402,06017\n"
+ "00000,021116 083000\n"
+ "00000\n"
+ "00000\n"
+ "00000\n"
+ "00000,031116 080000\n"
+ "[MSGEND]";
final Pattern pattern = Pattern.compile(regex);
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