import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "([\\w*-′]*([\\[(]([\\[(]?[a-zA-Zα-ωΑ-Ωµ\\-′,:]+\\d?[+-]?[\\])]?)+[\\])\\d+-]{1,})[\\w*-′]*)|(([A-z]+[a-z]*\\d)+([A-z]+[a-z]*\\d?)*)";
final String string = "\"Fe(iii) or iron(iii) [Fe(Rtpen)X](A)n, n = 1, 2; X = Cl, Br; Rtpen = N-alkyl-N,N′,N′-tris(2-pyridylmethyl)ethane-1,2-diamine, alkyl = R = CH3CH2, CH3CH2CH2, HOCH2CH2, (CH3)2CH, C6H5, and C6H5CH2; A = ClO4, PF6.\"\n"
+ "\"iron(iii) \n"
+ "[Fe(Rtpen)(η1-OCH3)]2+ \n"
+ "[Fe(Rtpen)(η1-OOH)]2+ from iron(ii)\"\n"
+ "\"[FeIIIOOH]2+ rather than [FeIIIOO]+ species are the p\"\n"
+ "[(Rtpen)Fe(µ,η2:η2-O2)Fe(Rtpen)]4+\n"
+ "iron(iii)\n"
+ "Fe(iii)\n"
+ "[FeIIIOOH]2+\n"
+ "[Fe(Rtpen)Cl]+\n"
+ "[Fe(Rtpen)(η1-OOH)]2+\n"
+ "[Fe(Rtpen)X](A)n\n"
+ "[(Rtpen)Fe(µ,η2:η2-O2)Fe(Rtpen)]4+\n"
+ " Fe(Rtpen)(η2-OO)]+,\n"
+ "N′-tris(2-pyridylmethyl)ethane-1,2-diamine\n"
+ "of [Fe(Rtpen)(η1-OOH)]2+ pro\n"
+ " (ESR, UV-vis, ESI MS) \n"
+ " [Fe(Rtpen)(η1-OOH)]2+, R = CH3CH2, CH3CH2CH2, HOCH2CH2, (CH3)2CH, C6H5, and C6H5CH2.\n"
+ "f [Fe(ettpen)Cl]ClO4 instead of [Fe(bztpen)Cl]ClO4 \n"
+ "[Fe(Rtpen)Cl]A, A = ClO4, PF6, are as expected ESR silent.\n"
+ "[Fe(Rtpen)Cl](PF6) and [Fe(Rtpen)Cl](PF6)2\n"
+ "e µ-oxo complex [(bztpen)ClFe(µ-O)FeCl(bztpen)](PF6)2 which could be isolated.\n"
+ "H2O\n"
+ "[Fe(bztpen)Cl](ClO4)2\n"
+ " solution at 100 K, a rhombic low-spin signal (g = 2.32, 2.14, 1.93) is present in the spectra of the Fe(iii) complexes (Fig. 3a)\n"
+ ").\n\n"
+ "metpen–Fe(iii)–peroxide complexes, lead to assignment of end-on coordination for the hydroperoxide species, e.g., [Fe(Rtpen)(η1-OOH)]2+, and side-on (η2) peroxide coordination in their deprotonated derivatives, e.g., [Fe(Rtpen)(η2-OO)]+ (Scheme 1)";
final Pattern pattern = Pattern.compile(regex);
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