import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\b(in relation to any Facility [A-Z] Loan \\[\\s*(\\d+%)\\s*\\] per cent. per annum);";
final String string = "\"Margin\" means:\n"
+ "(a) in relation to any Facility A Loan [2% ] per cent. per annum;\n"
+ "(b) in relation to any Facility B Loan [ 5% ] per cent. per annum;\n"
+ "(c) [in relation to any Incremental Facility Loan, the percentage rate per annum specified as such in the Incremental Facility Notice relating to the Incremental Facility under which that Incremental Facility Loan is made or is to be made;]";
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