import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\[([A-G][#b]?(maj|m)?[27]?(add|aug|dim|sus)?[2-9]?)\\]";
final String string = "[Am7], [C6]\n"
+ "[C7]\n"
+ "[Cmaj7]\n"
+ "[C]\n"
+ "[Fadd9]\n"
+ "[C7sus4]\n"
+ "[Csus4], [Fsus2]\n"
+ "[A7]\n"
+ "[Edim]\n"
+ "[A9], [Em6]\n"
+ "[Dbdim]\n"
+ "[Eb9]\n"
+ "[Gdim]\n"
+ "[A7sus4]\n"
+ "[C9], [Gm6]\n"
+ "[Em7], [G6]\n"
+ "[Bb6], [Gm7]\n"
+ "[G7]\n"
+ "[G7sus4]\n"
+ "[Gmaj7]\n"
+ "[Dsus4], [Gsus2]\n"
+ "[Gm]\n"
+ "[G]\n"
+ "[Csus2], [Gsus4]\n"
+ "[Ebadd9]\n"
+ "[Eb]\n"
+ "[Ebaug], [Gaug]\n"
+ "[Cm]\n"
+ "[Em9]\n"
+ "[Cadd9]\n"
+ "[Abaug], [Caug], [Eaug]\n"
+ "[Fm]\n"
+ "[Amaj7]\n"
+ "[Dbm6], [Gb9]\n"
+ "[Dbm7]\n"
+ "[Bbm7], [Db6]\n"
+ "[Db7]\n"
+ "[Db]\n"
+ "[Gbadd9]\n"
+ "[Gbsus2]\n"
+ "[E7]\n"
+ "[Bb7]\n"
+ "[Abdim], [Fdim]\n"
+ "[Fm6]\n"
+ "[Gbm9]\n"
+ "[Bm6], [E9]\n"
+ "[Emaj7]\n"
+ "[Dbm9]\n"
+ "[Bb7sus4]\n"
+ "[Db9]\n"
+ "[Ab6], [Fm7]\n"
+ "[Dbadd9]\n"
+ "[Abm7], [B6]\n"
+ "[Ab7]\n"
+ "[Ab7sus4]\n"
+ "[Abmaj7]\n"
+ "[Absus2]\n"
+ "[Absus4]\n"
+ "[E]\n"
+ "[Eadd9]\n"
+ "[Am]\n"
+ "[Am9]\n"
+ "[F]\n"
+ "[Am6]\n"
+ "[A]\n"
+ "[Aadd9], [Bm9]\n"
+ "[Dbaug], [Faug]\n"
+ "[Aaug]\n"
+ "[A6], [Gbm]\n"
+ "[Gbm6]\n"
+ "[Asus4], [Dsus2]\n"
+ "[Dm]\n"
+ "[Dm6], [G9]\n"
+ "[Dm7], [F6]\n"
+ "[D]\n"
+ "[Bm7], [D6]\n"
+ "[D7]\n"
+ "[Dmaj7]\n"
+ "[Gm9]\n"
+ "[D7sus4]\n"
+ "[F7]\n"
+ "[Ebdim]\n"
+ "[B7]\n"
+ "[Adim], [Gbdim]\n"
+ "[Cm6], [F9]\n"
+ "[Fmaj7]\n"
+ "[B7sus4]\n"
+ "[D9]\n"
+ "[Gbm7]\n"
+ "[Bbsus2], [Fsus4]\n"
+ "[Bbdim]\n"
+ "[Bbm]\n"
+ "[Bbm9]\n"
+ "[Gb]\n"
+ "[Bbm6]\n"
+ "[Bbmaj7]\n"
+ "[Bb]\n"
+ "[Bbadd9]\n"
+ "[Bbaug], [Daug], [Gbaug]\n"
+ "[Bb9]\n"
+ "[Bbsus4]\n"
+ "[Ebm]\n"
+ "[Ab9], [Ebm6]\n"
+ "[Ebm7], [Gb6]\n"
+ "[Cm7], [Eb6]\n"
+ "[Eb7]\n"
+ "[Abadd9]\n"
+ "[Ebsus2]\n"
+ "[Gb7]\n"
+ "[Bsus2], [Gbsus4]\n"
+ "[Bdim]\n"
+ "[Bm]\n"
+ "[Bmaj7]\n"
+ "[B]\n"
+ "[Badd9]\n"
+ "[Baug]\n"
+ "[Abm]\n"
+ "[Bsus4], [Esus2]\n"
+ "[E6]";
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