import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\(([^()]*(?:\\([^()]*\\)[^()]*)*)\\)\\s*$";
final String string = "Coven - GLAM (Lager - IPL (India Pale Lager). ABV 5.5%, IBU 15)\n"
+ "Molson Coors (UK) - Carling Original (Lager - Pale. ABV 3,7%)\n"
+ "Barista Chocolate Quad (Belgian Quadrupel. ABV 11%)\n"
+ "4Пивовара - Black Jesus White Pepper (Porter - American. OG 17, ABV 6.7%, IBU 69)\n"
+ "4Пивовара - Ether [Melon] (Sour - Farmhouse IPA OG 17, ABV 6.5%, IBU 40)\n"
+ "Кер Сари Пшеничное (Wheat Beer - Other. ABV 4,5%)\n"
+ "Butch & Dutch - IPA 100 IBU (IPA - International. ABV 7%, IBU 100)\n"
+ "Trappistes Rochefort 6 (Belgian Dubbel. ABV 7,5%, IBU 22)\n"
+ "Fournier - Frères Producteurs - Eleveurs - Cidre Rose (Cider - Rose. ABV 3%)\n"
+ "Shepherd Neame - Classic Collection - India Pale Ale (IPA - English. OG 14,62%, ABV 6,1%)";
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