import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(a[abefkmnrsvyz]|b[aegimnors]|c[aehorsuvy]|d[aevz]|e[elnostu]|f[afijory]|g[adlnuv]|h[aeiortuyz]|i[adegikostu]|j[av]|k[agijklmnorsuvwy]|l[abginotuv]|m[ghiklnrsty]|n[abdeglnorvy]|o[cjmrs]|p[ailst]|q[u]|r[mnouw]|s[acdegiklmnoqrstuvw]|t[aeghiklnorstwy]|u[gkrz]|v[eio]|w[ao]|x[h]|y[io]|z[ahu])$";
final String string = "aa\n"
+ "ab\n"
+ "ac\n"
+ "ad\n"
+ "ae\n"
+ "af\n"
+ "ag\n"
+ "ah\n"
+ "ai\n"
+ "aj\n"
+ "ak\n"
+ "al\n"
+ "am\n"
+ "an\n"
+ "ao\n"
+ "ap\n"
+ "aq\n"
+ "ar\n"
+ "as\n"
+ "at\n"
+ "au\n"
+ "av\n"
+ "aw\n"
+ "ax\n"
+ "ay\n"
+ "az\n"
+ "ba\n"
+ "bb\n"
+ "bc\n"
+ "bd\n"
+ "be\n"
+ "bf\n"
+ "bg\n"
+ "bh\n"
+ "bi\n"
+ "bj\n"
+ "bk\n"
+ "bl\n"
+ "bm\n"
+ "bn\n"
+ "bo\n"
+ "bp\n"
+ "bq\n"
+ "br\n"
+ "bs\n"
+ "bt\n"
+ "bu\n"
+ "bv\n"
+ "bw\n"
+ "bx\n"
+ "by\n"
+ "bz\n"
+ "ca\n"
+ "cb\n"
+ "cc\n"
+ "cd\n"
+ "ce\n"
+ "cf\n"
+ "cg\n"
+ "ch\n"
+ "ci\n"
+ "cj\n"
+ "ck\n"
+ "cl\n"
+ "cm\n"
+ "cn\n"
+ "co\n"
+ "cp\n"
+ "cq\n"
+ "cr\n"
+ "cs\n"
+ "ct\n"
+ "cu\n"
+ "cv\n"
+ "cw\n"
+ "cx\n"
+ "cy\n"
+ "cz\n"
+ "da\n"
+ "db\n"
+ "dc\n"
+ "dd\n"
+ "de\n"
+ "df\n"
+ "dg\n"
+ "dh\n"
+ "di\n"
+ "dj\n"
+ "dk\n"
+ "dl\n"
+ "dm\n"
+ "dn\n"
+ "do\n"
+ "dp\n"
+ "dq\n"
+ "dr\n"
+ "ds\n"
+ "dt\n"
+ "du\n"
+ "dv\n"
+ "dw\n"
+ "dx\n"
+ "dy\n"
+ "dz\n"
+ "ea\n"
+ "eb\n"
+ "ec\n"
+ "ed\n"
+ "ee\n"
+ "ef\n"
+ "eg\n"
+ "eh\n"
+ "ei\n"
+ "ej\n"
+ "ek\n"
+ "el\n"
+ "em\n"
+ "en\n"
+ "eo\n"
+ "ep\n"
+ "eq\n"
+ "er\n"
+ "es\n"
+ "et\n"
+ "eu\n"
+ "ev\n"
+ "ew\n"
+ "ex\n"
+ "ey\n"
+ "ez\n"
+ "fa\n"
+ "fb\n"
+ "fc\n"
+ "fd\n"
+ "fe\n"
+ "ff\n"
+ "fg\n"
+ "fh\n"
+ "fi\n"
+ "fj\n"
+ "fk\n"
+ "fl\n"
+ "fm\n"
+ "fn\n"
+ "fo\n"
+ "fp\n"
+ "fq\n"
+ "fr\n"
+ "fs\n"
+ "ft\n"
+ "fu\n"
+ "fv\n"
+ "fw\n"
+ "fx\n"
+ "fy\n"
+ "fz\n"
+ "ga\n"
+ "gb\n"
+ "gc\n"
+ "gd\n"
+ "ge\n"
+ "gf\n"
+ "gg\n"
+ "gh\n"
+ "gi\n"
+ "gj\n"
+ "gk\n"
+ "gl\n"
+ "gm\n"
+ "gn\n"
+ "go\n"
+ "gp\n"
+ "gq\n"
+ "gr\n"
+ "gs\n"
+ "gt\n"
+ "gu\n"
+ "gv\n"
+ "gw\n"
+ "gx\n"
+ "gy\n"
+ "gz\n"
+ "ha\n"
+ "hb\n"
+ "hc\n"
+ "hd\n"
+ "he\n"
+ "hf\n"
+ "hg\n"
+ "hh\n"
+ "hi\n"
+ "hj\n"
+ "hk\n"
+ "hl\n"
+ "hm\n"
+ "hn\n"
+ "ho\n"
+ "hp\n"
+ "hq\n"
+ "hr\n"
+ "hs\n"
+ "ht\n"
+ "hu\n"
+ "hv\n"
+ "hw\n"
+ "hx\n"
+ "hy\n"
+ "hz\n"
+ "ia\n"
+ "ib\n"
+ "ic\n"
+ "id\n"
+ "ie\n"
+ "if\n"
+ "ig\n"
+ "ih\n"
+ "ii\n"
+ "ij\n"
+ "ik\n"
+ "il\n"
+ "im\n"
+ "in\n"
+ "io\n"
+ "ip\n"
+ "iq\n"
+ "ir\n"
+ "is\n"
+ "it\n"
+ "iu\n"
+ "iv\n"
+ "iw\n"
+ "ix\n"
+ "iy\n"
+ "iz\n"
+ "ja\n"
+ "jb\n"
+ "jc\n"
+ "jd\n"
+ "je\n"
+ "jf\n"
+ "jg\n"
+ "jh\n"
+ "ji\n"
+ "jj\n"
+ "jk\n"
+ "jl\n"
+ "jm\n"
+ "jn\n"
+ "jo\n"
+ "jp\n"
+ "jq\n"
+ "jr\n"
+ "js\n"
+ "jt\n"
+ "ju\n"
+ "jv\n"
+ "jw\n"
+ "jx\n"
+ "jy\n"
+ "jz\n"
+ "ka\n"
+ "kb\n"
+ "kc\n"
+ "kd\n"
+ "ke\n"
+ "kf\n"
+ "kg\n"
+ "kh\n"
+ "ki\n"
+ "kj\n"
+ "kk\n"
+ "kl\n"
+ "km\n"
+ "kn\n"
+ "ko\n"
+ "kp\n"
+ "kq\n"
+ "kr\n"
+ "ks\n"
+ "kt\n"
+ "ku\n"
+ "kv\n"
+ "kw\n"
+ "kx\n"
+ "ky\n"
+ "kz\n"
+ "la\n"
+ "lb\n"
+ "lc\n"
+ "ld\n"
+ "le\n"
+ "lf\n"
+ "lg\n"
+ "lh\n"
+ "li\n"
+ "lj\n"
+ "lk\n"
+ "ll\n"
+ "lm\n"
+ "ln\n"
+ "lo\n"
+ "lp\n"
+ "lq\n"
+ "lr\n"
+ "ls\n"
+ "lt\n"
+ "lu\n"
+ "lv\n"
+ "lw\n"
+ "lx\n"
+ "ly\n"
+ "lz\n"
+ "ma\n"
+ "mb\n"
+ "mc\n"
+ "md\n"
+ "me\n"
+ "mf\n"
+ "mg\n"
+ "mh\n"
+ "mi\n"
+ "mj\n"
+ "mk\n"
+ "ml\n"
+ "mm\n"
+ "mn\n"
+ "mo\n"
+ "mp\n"
+ "mq\n"
+ "mr\n"
+ "ms\n"
+ "mt\n"
+ "mu\n"
+ "mv\n"
+ "mw\n"
+ "mx\n"
+ "my\n"
+ "mz\n"
+ "na\n"
+ "nb\n"
+ "nc\n"
+ "nd\n"
+ "ne\n"
+ "nf\n"
+ "ng\n"
+ "nh\n"
+ "ni\n"
+ "nj\n"
+ "nk\n"
+ "nl\n"
+ "nm\n"
+ "nn\n"
+ "no\n"
+ "np\n"
+ "nq\n"
+ "nr\n"
+ "ns\n"
+ "nt\n"
+ "nu\n"
+ "nv\n"
+ "nw\n"
+ "nx\n"
+ "ny\n"
+ "nz\n"
+ "oa\n"
+ "ob\n"
+ "oc\n"
+ "od\n"
+ "oe\n"
+ "of\n"
+ "og\n"
+ "oh\n"
+ "oi\n"
+ "oj\n"
+ "ok\n"
+ "ol\n"
+ "om\n"
+ "on\n"
+ "oo\n"
+ "op\n"
+ "oq\n"
+ "or\n"
+ "os\n"
+ "ot\n"
+ "ou\n"
+ "ov\n"
+ "ow\n"
+ "ox\n"
+ "oy\n"
+ "oz\n"
+ "pa\n"
+ "pb\n"
+ "pc\n"
+ "pd\n"
+ "pe\n"
+ "pf\n"
+ "pg\n"
+ "ph\n"
+ "pi\n"
+ "pj\n"
+ "pk\n"
+ "pl\n"
+ "pm\n"
+ "pn\n"
+ "po\n"
+ "pp\n"
+ "pq\n"
+ "pr\n"
+ "ps\n"
+ "pt\n"
+ "pu\n"
+ "pv\n"
+ "pw\n"
+ "px\n"
+ "py\n"
+ "pz\n"
+ "qa\n"
+ "qb\n"
+ "qc\n"
+ "qd\n"
+ "qe\n"
+ "qf\n"
+ "qg\n"
+ "qh\n"
+ "qi\n"
+ "qj\n"
+ "qk\n"
+ "ql\n"
+ "qm\n"
+ "qn\n"
+ "qo\n"
+ "qp\n"
+ "qq\n"
+ "qr\n"
+ "qs\n"
+ "qt\n"
+ "qu\n"
+ "qv\n"
+ "qw\n"
+ "qx\n"
+ "qy\n"
+ "qz\n"
+ "ra\n"
+ "rb\n"
+ "rc\n"
+ "rd\n"
+ "re\n"
+ "rf\n"
+ "rg\n"
+ "rh\n"
+ "ri\n"
+ "rj\n"
+ "rk\n"
+ "rl\n"
+ "rm\n"
+ "rn\n"
+ "ro\n"
+ "rp\n"
+ "rq\n"
+ "rr\n"
+ "rs\n"
+ "rt\n"
+ "ru\n"
+ "rv\n"
+ "rw\n"
+ "rx\n"
+ "ry\n"
+ "rz\n"
+ "sa\n"
+ "sb\n"
+ "sc\n"
+ "sd\n"
+ "se\n"
+ "sf\n"
+ "sg\n"
+ "sh\n"
+ "si\n"
+ "sj\n"
+ "sk\n"
+ "sl\n"
+ "sm\n"
+ "sn\n"
+ "so\n"
+ "sp\n"
+ "sq\n"
+ "sr\n"
+ "ss\n"
+ "st\n"
+ "su\n"
+ "sv\n"
+ "sw\n"
+ "sx\n"
+ "sy\n"
+ "sz\n"
+ "ta\n"
+ "tb\n"
+ "tc\n"
+ "td\n"
+ "te\n"
+ "tf\n"
+ "tg\n"
+ "th\n"
+ "ti\n"
+ "tj\n"
+ "tk\n"
+ "tl\n"
+ "tm\n"
+ "tn\n"
+ "to\n"
+ "tp\n"
+ "tq\n"
+ "tr\n"
+ "ts\n"
+ "tt\n"
+ "tu\n"
+ "tv\n"
+ "tw\n"
+ "tx\n"
+ "ty\n"
+ "tz\n"
+ "ua\n"
+ "ub\n"
+ "uc\n"
+ "ud\n"
+ "ue\n"
+ "uf\n"
+ "ug\n"
+ "uh\n"
+ "ui\n"
+ "uj\n"
+ "uk\n"
+ "ul\n"
+ "um\n"
+ "un\n"
+ "uo\n"
+ "up\n"
+ "uq\n"
+ "ur\n"
+ "us\n"
+ "ut\n"
+ "uu\n"
+ "uv\n"
+ "uw\n"
+ "ux\n"
+ "uy\n"
+ "uz\n"
+ "va\n"
+ "vb\n"
+ "vc\n"
+ "vd\n"
+ "ve\n"
+ "vf\n"
+ "vg\n"
+ "vh\n"
+ "vi\n"
+ "vj\n"
+ "vk\n"
+ "vl\n"
+ "vm\n"
+ "vn\n"
+ "vo\n"
+ "vp\n"
+ "vq\n"
+ "vr\n"
+ "vs\n"
+ "vt\n"
+ "vu\n"
+ "vv\n"
+ "vw\n"
+ "vx\n"
+ "vy\n"
+ "vz\n"
+ "wa\n"
+ "wb\n"
+ "wc\n"
+ "wd\n"
+ "we\n"
+ "wf\n"
+ "wg\n"
+ "wh\n"
+ "wi\n"
+ "wj\n"
+ "wk\n"
+ "wl\n"
+ "wm\n"
+ "wn\n"
+ "wo\n"
+ "wp\n"
+ "wq\n"
+ "wr\n"
+ "ws\n"
+ "wt\n"
+ "wu\n"
+ "wv\n"
+ "ww\n"
+ "wx\n"
+ "wy\n"
+ "wz\n"
+ "xa\n"
+ "xb\n"
+ "xc\n"
+ "xd\n"
+ "xe\n"
+ "xf\n"
+ "xg\n"
+ "xh\n"
+ "xi\n"
+ "xj\n"
+ "xk\n"
+ "xl\n"
+ "xm\n"
+ "xn\n"
+ "xo\n"
+ "xp\n"
+ "xq\n"
+ "xr\n"
+ "xs\n"
+ "xt\n"
+ "xu\n"
+ "xv\n"
+ "xw\n"
+ "xx\n"
+ "xy\n"
+ "xz\n"
+ "ya\n"
+ "yb\n"
+ "yc\n"
+ "yd\n"
+ "ye\n"
+ "yf\n"
+ "yg\n"
+ "yh\n"
+ "yi\n"
+ "yj\n"
+ "yk\n"
+ "yl\n"
+ "ym\n"
+ "yn\n"
+ "yo\n"
+ "yp\n"
+ "yq\n"
+ "yr\n"
+ "ys\n"
+ "yt\n"
+ "yu\n"
+ "yv\n"
+ "yw\n"
+ "yx\n"
+ "yy\n"
+ "yz\n"
+ "za\n"
+ "zb\n"
+ "zc\n"
+ "zd\n"
+ "ze\n"
+ "zf\n"
+ "zg\n"
+ "zh\n"
+ "zi\n"
+ "zj\n"
+ "zk\n"
+ "zl\n"
+ "zm\n"
+ "zn\n"
+ "zo\n"
+ "zp\n"
+ "zq\n"
+ "zr\n"
+ "zs\n"
+ "zt\n"
+ "zu\n"
+ "zv\n"
+ "zw\n"
+ "zx\n"
+ "zy\n"
+ "zz";
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