import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(Gen|Gn|Ex|Lev|Lv|Nm|Dt|Jos|Jue|1°Sam|2°Sam|1°Rey|2°Rey|Job|Sal|Prov|Cant|Is|Jer|Ez|Dan|Dn|Os|Miq|Sof|Zac|Mal|Mt|Mc|Lc|Jn|Hch|Rm|Rom|1°Co|1°Cor|Cor|2°Co|2°Cor|Ga|Gal|Ef|Flp|Col|1°Tes|2°Tes|1°Tim|2°Tim|Tito|Heb|Sant|Stgo|1°Ped|2°Ped|1°Jn|Ap|Tob|Sab|Eclo|Sir|1°Mac|2°Mac|Isaías|Jeremías|Zacarías|Hechos|Mateo|Salmo|Judit) ([0-9]{1,3})(?:,(\\d{1,3}))?";
final String string = "Ex 32,1-14\n"
+ "Rom 1,18ss, (DH 3004\n"
+ "Rom 1,18-2\n"
+ "Ex 32,1-1\n"
+ "Sal 14,1\n"
+ "Heb 11,1: “La fe es \n"
+ "Heb 1,1ss\n"
+ "Ef 1,9\n"
+ "1°Cor 2,6-10\n"
+ "Heb 11,1: \n"
+ "Heb 12,2, se exalta a \n"
+ "1°Cor 15,3-5 y Hch 2,22-24. \n"
+ "Mt 25,40; Stgo 2,14-26; 1°Jn 4,8.20\n"
+ " Gen 31,5, Gen 31,42, etc. \n"
+ "Gen 45,8. o SEB\n"
+ " Ex 20,5-6; Ex 34,6\n"
+ "Ex 22\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