import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(.*\\/thumb\\/[0-9a-f]\\/[0-9a-f]{2}\\/)([^\\/]+\\.(jpg|jpeg|png|gif))\\/\\d+px-(\\2)";
final String string = "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Royal_tyrrell_entrance.JPG/800px-Royal_tyrrell_entrance.JPG\n\n"
+ "https://upload.wikimedia.org/wikipedia/commons/6/6d/Royal_tyrrell_entrance.JPG\n\n"
+ "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Royal_tyrrell_entrance.jpg/800px-Royal_tyrrell_entrance.jpg\n\n"
+ "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Royal_tyrrell_entrance.jpeg/800px-Royal_tyrrell_entrance.jpeg\n\n"
+ "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Royal_tyrrell_entrance.png/800px-Royal_tyrrell_entrance.png\n\n"
+ "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/Royal_tyrrell_entrance.gif/800px-Royal_tyrrell_entrance.gif\n\n"
+ "//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/Flag_of_Canada.svg/30px-Flag_of_Canada.svg.png 1.5x\n\n"
+ "<img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Royal_Tyrrell_Museum.JPG/220px-Royal_Tyrrell_Museum.JPG\" decoding=\"async\" width=\"220\" height=\"165\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Royal_Tyrrell_Museum.JPG/330px-Royal_Tyrrell_Museum.JPG 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/8e/Royal_Tyrrell_Museum.JPG/440px-Royal_Tyrrell_Museum.JPG 2x\" data-file-width=\"4000\" data-file-height=\"3000\">\n\n"
+ "<img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/commons/thumb/9/91/Joseph_Burr_Tyrrell_bust.jpg/220px-Joseph_Burr_Tyrrell_bust.jpg\" decoding=\"async\" width=\"220\" height=\"293\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/9/91/Joseph_Burr_Tyrrell_bust.jpg/330px-Joseph_Burr_Tyrrell_bust.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/9/91/Joseph_Burr_Tyrrell_bust.jpg/440px-Joseph_Burr_Tyrrell_bust.jpg 2x\" data-file-width=\"1536\" data-file-height=\"2048\">\n\n\n\n";
final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE | 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