import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?P<time>\\d\\d:\\d\\d:\\d\\d.\\d{3})\\s(?P<date>\\d\\d/\\d\\d/\\d\\d)\\s(?P<sno>\\d{10})\\s(?P<status>\\w{1,2}).*?-\\s*(?P<bcode>No_barcode|\\W{20})(?:\\s+(?P<type>\\w{3}))?(?:.*?(?P<pr>Pt.*?\\d*[.]?\\d*\\s[a-z]+))?(?:\\s{1,3}(?P<fl>FL.*?\\d*[.]?\\d*\\s[a-z]+))?";
final String string = "95031B2 R C01 N1 P93 R-- 12:39:18.540 08/05/20 0000002802 R - No_barcode FLC F LR 7.673353 sccm Pt 25.288202 psig FL 536.651917 sccm EDC 0.000000 sccm PQ 7.668324 sccm QF 536.289246 sccm QP 25.287605 psig LLQ -0.109524 sccm HLQ 4.440174 sccm CLF 1.429953 sccm MF 0.000000 sccm LF 100.000015 sccm MQF 0.000000 sccm LQF 100.000015 sccm FPR 25.290846 psig \n\n"
+ "5102060 R C01 N1 P93 R-- 12:38:52.140 08/05/20 0000002801 FO - No_barcode \n\n";
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