import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(.+)(?:[Ss _\\.](\\d{2,})[Ee _\\.](\\d{2,}))[\\. _](\\d{3,4}p)?(.+)?.*?\\-(.+?)(?:\\[(.+)\\])?\\.(\\w+)";
final String string = "Ridiculousness.S07E15.HDTV.x264-TASTETV[eztv].mp4\n"
+ "Portlandia.S06E03.HDTV.x264-KILLERS[eztv].mp4\n"
+ "Life.in.Pieces.S01E15.HDTV.x264-KILLERS[eztv].mp4\n"
+ "Portlandia.S06E03.720p.HDTV.x264-KILLERS[eztv].mkv\n"
+ "Idiotsitter.S01E04.HDTV.x264-KILLERS[eztv].mp4\n"
+ "Lip.Sync.Battle.S02E05.720p.HDTV.x264-ALTEREGO[eztv].mkv\n"
+ "Lip.Sync.Battle.S02E05.HDTV.x264-ALTEREGO[eztv].mp4\n"
+ "Shades.of.Blue.S01E05.720p.HDTV.x264-AVS[eztv].mkv\n"
+ "Shades.of.Blue.S01E05.720p.HDTV.x264-FLEET[eztv].mkv\n"
+ "Colony.S01E04.720p.HDTV.x264-KILLERS[eztv].mkv\n"
+ "Shades.of.Blue.S01E05.HDTV.x264-FLEET[eztv].mp4\n"
+ "Baskets.S01E03.INTERNAL.720p.HDTV.x264-KILLERS[eztv].mkv\n"
+ "Baskets.S01E03.INTERNAL.HDTV.x264-KILLERS[eztv].mp4\n"
+ "Workaholics.S06E04.720p.HDTV.x264-KILLERS[eztv].mkv\n"
+ "Baskets.S01E03.HDTV.x264-FLEET[eztv].mp4\n"
+ "Baskets.S01E03.720p.HDTV.x264-FLEET[eztv].mkv\n"
+ "The.Blacklist.S03E13.720p.HDTV.x264-AVS[eztv].mkv\n"
+ "The.100.S03E03.720p.HDTV.x264-AVS[eztv].mkv\n"
+ "Angel.From.Hell.S01E05.HDTV.x264-LOL[eztv].mp4\n"
+ "Angel.From.Hell.S01E05.720p.HDTV.X264-DIMENSION[eztv].mkv\n"
+ "The.100.S03E03.HDTV.x264-FLEET[eztv].mp4\n"
+ "Mom.S03E10.HDTV.x264-LOL[eztv].mp4\n"
+ "Mom.S03E10.720p.HDTV.X264-DIMENSION[eztv].mkv\n"
+ "Life.in.Pieces.S01E15.720p.HDTV.x264-AVS[eztv].mkv\n"
+ "Elementary.S04E11.HDTV.x264-LOL[eztv].mp4\n"
+ "Elementary.S04E11.720p.HDTV.X264-DIMENSION[eztv].mkv\n"
+ "DCs.Legends.of.Tomorrow.S01E03.HDTV.x264-LOL[eztv].mp4\n"
+ "The.Vampire.Diaries.S07E11.HDTV.x264-LOL[eztv].mp4\n"
+ "DCs.Legends.of.Tomorrow.S01E03.720p.HDTV.X264-DIMENSION[eztv].mkv\n"
+ "The.Vampire.Diaries.S07E11.720p.HDTV.X264-DIMENSION[eztv].mkv\n"
+ "Saving.Hope.S04E16.HDTV.x264-BAJSKORV[eztv].mp4\n"
+ "Saving.Hope.S04E16.720p.HDTV.x264-BAJSKORV[eztv].mkv\n"
+ "The.Big.Bang.Theory.S09E14.HDTV.x264-LOL[eztv].mp4\n"
+ "The.Ellen.DeGeneres.Show.2016.02.04.HDTV.x264-ALTEREGO[eztv].mp4\n"
+ "The.Ellen.DeGeneres.Show.2016.02.04.720p.HDTV.x264-ALTEREGO[eztv].mkv\n"
+ "Teachers.2016.S01E04.REPACK.720p.HDTV.x264-ALTEREGO[eztv].mkv\n"
+ "Celebrity.Big.Brothers.Bit.On.The.Side.S10E24.720p.HDTV.x264-C4TV[eztv].mkv\n"
+ "Long.Island.Medium.S07E03.HDTV.x264-CRiMSON[eztv].mp4\n"
+ "Celebrity.Big.Brothers.Bit.On.The.Side.S10E24.HDTV.x264-C4TV[eztv].mp4\n"
+ "Clarence.US.S02E06.Time.Crimes.720p.HDTV.x264-W4F[eztv].mkv\n"
+ "Clarence.US.S02E06.Time.Crimes.HDTV.x264-W4F[eztv].mp4\n"
+ "Clarence.US.S02E05.Ren.Faire.720p.HDTV.x264-W4F[eztv].mkv\n"
+ "Clarence.US.S02E05.Ren.Faire.HDTV.x264-W4F[eztv].mp4\n"
+ "Great.British.Railway.Journeys.Series.7.05of20.Ashley.to.Alton.720p.x264.HDTV[eztv].mp4\n"
+ "Celebrity.Big.Brother.S17E35.HDTV.x264-C4TV[eztv].mp4\n"
+ "James.Corden.2016.02.03.Rosie.ODonnell.HDTV.x264-TASTETV[eztv].mp4\n"
+ "James.Corden.2016.02.03.Rosie.ODonnell.720p.HDTV.x264-TASTETV[eztv].mkv\n"
+ "Mr Robot S01E10 2015 HDTV x264 - SPARKS.wmv";
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