import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(\\|\\s*(logo|image|screenshot|race_logo|track map)\\s*=\\s*)(File:|Image:)?([^\\[\\||<\\n]*)((\\|\\s*\\d{1,4}px(\\?)?|\\|\\s*thumb))((\\|\\s*\\d{1,4}px(\\?)?|\\|\\s*thumb))?(?(?=\\|[A-z]*\\s*=)|(?(?=\\|(\\w*\\W*)*)(\\|[^\\|\\n]*)?)?)";
final String string = "| image = [[File:Central Asia (orthographic projection).svg|200px|Map of Central Asia]]\n\n"
+ "|Image=|150px? \n\n"
+ "}}]] – [[Template:POTD/2012-06-09|{{POTD texttitle\n"
+ "|image=Jack-in-cube solid model, light background.gif\n"
+ "|thumb=Jack-in-cube solid model, light background frame.png\n"
+ "|size=180\n\n"
+ "|name = Reggae\n"
+ "| Image = File:Bob-Marley.jpg|thumb|231px|\n"
+ "| caption = Popular reggae artist [[Bob Marley]] in 1980\n\n"
+ "{{Infobox officeholder\n"
+ "|image = Karenskiy AF 1917.jpg|230px\n"
+ "|nationality = Russian\n\n"
+ "{{Infobox officeholder\n"
+ "|image = Karenskiy AF 1917.jpg|230px|thumb\n"
+ "|nationality = Russian\n\n"
+ "{{Infobox officeholder\n"
+ "|image = Karenskiy AF 1917.jpg|thumb\n"
+ "|nationality = Russian\n\n"
+ "{{Infobox officeholder\n"
+ "|image = Karenskiy AF 1917.jpg|230px|nationality = Russian\n\n"
+ "|country=IND\n"
+ "|image= National Highway 2 (India).png|300px|Road map of India with NH 19 highlighted in solid blue color\n"
+ "|type=NH\n\n"
+ "|image = File:April 14, 2012 Marquette, Kansas EF4 tornado.JPG|309px\n\n"
+ "{{Infobox football club |\n"
+ " clubname = Slovácko |\n"
+ " image = Image:1FC Slovacko.png|150px|Logo |\n"
+ " fullname = 1. FC Slovácko A.S. |\n\n"
+ "| image = <imagemap>\n"
+ "File:Primates - some families.jpg|300px";
final String subst = "$1$4";
final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
}
}
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