import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?<=^.. |^... |^.... )([^,]*,[^,:]*)";
final String string = "46. Delmay, B.: I personaggi della Divina Commedia. Volume 201. Olschki (1986)\n"
+ "129. Kurucz, R.: Atlas9 stellar atmosphere programs and 2 km/s grid. ATLAS9 Stellar Atmosphere Programs and 2 km/s grid. Kurucz CD-ROM No. 13. Cambridge, Mass.: Smithsonian Astrophysical Observatory, 1993. 13 (1993)\n"
+ "130. Andrewes, D.G., Holton, J.R., Leovy, C.B.: Middle atmosphere dynamics. Number 40. Academic press (1987)\n"
+ "6. Welch, T.A.: A technique for high-performance data compression. Computer 17(6) (1984) 8–19\n"
+ "47. Alighieri, D., Landino, C., da Figino, P., Capcasa, M.: La divina commedia. G. Silvestri (1829)";
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