import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "((anticorpi|ac|ciroza).*?)?(hepatita (cr(onica)? )?(.*?))?(vh|hv|virus )([bcd])(.*?(vh|hv|virus )([bcd]))?";
final String string = "HEPATITA CRONICA CU VHC\n"
+ "HEPATITA CRONICA - VHC\n"
+ "HEPATITA CRONICA DE ETIOLOGIE MIXTA NUTRITIONALA SI VHC\n"
+ "HEPATITA CRONICA CU VHC.\n"
+ "HEPATITA CRONICA CU VHC.\n"
+ "HEPATITA CRONICA CU VHC\n"
+ "HEPATITA CRONICA - VHB\n"
+ "HEPATITA CRONICA CU VIRUS C\n"
+ "HEPATITA CRONICA\n"
+ "HEPATITA CRONICA CU VHB\n"
+ "HEPATITA CRONICA MEDICAMENTOASA.\n"
+ "HEPATITA DE ETIOLOGIE POSIBIL VIRALA IN APP\n"
+ "HEPATITA VIRUS C\n"
+ "HEPATITA CRONICA CU VHB\n"
+ "HEPATITA CRONICA CU VHC \n"
+ "Hepatita cr cu virus B\n"
+ "HEPATITA VIRUS C\n"
+ "HEPATITA VIRALA (VHA-####) \n"
+ "HEPATITA CRONICA VHB\n"
+ "HEPATITA CRONICA CU VHC\n"
+ "HEPATITA CRONICA- VHB\n"
+ "HEPATITA CRONICA CU VHC \n"
+ "HEPATITA CRONICA CU VHC(####)\n"
+ "HEPATITA CRONICA DE ETIOLOGIE NEPRECIZATA \n"
+ "HEPATITA CRONICA CU VHB\n"
+ "HEPATITA CRONICA VHC\n"
+ "HEPATITA CRONICA VIRALA CU VHC\n"
+ "HEPATITA VIRALA -VHC \n"
+ "HEPATITA CRONICA CU VHC\n"
+ "Hepatita cronica cu virus B\n"
+ "HEPATITA CRONICA CU VHB +VHC\n"
+ "HEPATITA CRONICA VHB+VHC \n"
+ "HEPATITA VIRALA C \n"
+ "HEPATITA CRONICA CU VHC \n"
+ "HEPATITA CRONICA CU VHB\n"
+ "HEPATITA CRONICA VHB+VHC\n"
+ "HEPATITA CRONICA CU VHB \n"
+ "HEPATITA B\n"
+ "Hepatita cronica.\n"
+ "HEPATITA CRONICA CU VHB\n"
+ "CIROZA HEPATICA SECUNDARA INFECTIEI CU VHB SI VHD \n"
+ "CIROZA HEPATICA VHB +VHD\n"
+ "CIROZA HEPATICA SECUNDARA INFECTIEI CU VHB SI VHD\n"
+ "HVB, HVC \n"
+ "HVB+ HVC \n"
+ "HVC + HVB \n"
+ "HEPATITA CU HVC \n"
+ "HEPATITA CRONICA HVC \n"
+ "HEPATITA CU HVC \n"
+ "CIROZA HEPATICA -HVC CHILD A\n"
+ "Ac AntiHVC +, HEPATOSPLENOMEGALIE\n"
+ "HEPATITA CU HVC \n"
+ "HEPATITA CRONICA HVC\n"
+ "ANTICORPI ANTI-HVC+\n";
final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
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