import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^\\/([a-zA-Z]{2}-[a-zA-Z]{2})\\/cms\\/api\\/preview([a-zA-Z0-9-_=\\/]*)(\\?)?(.*)";
final String string = "/en-US/cms/api/preview/pippo/paperino/pluto/minni/amelia#user=Artibani?qui=qua&quo=qui\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/minni/amelia#/user=Artibani?qui=qua&quo=qui\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/DePaperoni=ricco/amelia/#user/Artibani?qui=qua&quo=qui\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/DePaperoni=ricco/amelia/#/user=Artibani?qui=qua&quo=qui\n"
+ "/en-US/cms/api/preview/pippo/pluto23?qua=qui\n"
+ "/en-US/cms/api/preview/pippo-clarabella/EN-us/123???\n"
+ "/en-US/cms/api/preview/pippo/pluto-orazio?\n"
+ "/en-US/cms/api/preview/pippo/pico-archimede/\n"
+ "/en-US/cms/api/preview/pippo/pico/archimede\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/minni/amelia#user/Faraci\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/minni/amelia/#user=Faraci\n"
+ "/en-US/cms/api/preview\n"
+ "/en-US/cms/api/preview/\n"
+ "/en-US/cms/api/preview?\n"
+ "/en-US/cms/api/preview/?\n"
+ "/en-US/cms/api/preview#user=Artibani?qui=qua&quo=qui&cap_paperopoli=123\n"
+ "/en-US/cms/api/preview/#user/Artibani?qui=qua&quo=qui&cap_paperopoli=123\n"
+ "/en-US/cms/api/preview#/user=Artibani?qui=qua&quo=qui&cap_paperopoli=123\n"
+ "/en-US/cms/api/preview/#/user=Artibani?qui=qua&quo=qui&cap_paperopoli=123\n"
+ "/en-US/cms/api/preview#user=Faraci\n"
+ "/en-US/cms/api/preview#/user=Faraci\n"
+ "/en-US/cms/api/preview/#/user=Faraci\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/minni/amelia?qui=qua&quo=qui\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/DePaperoni=ricco/paperoga?qui=qua&quo=qui\n"
+ "/en-US/cms/api/preview/pippo/pluto23?qua=qui\n"
+ "/en-US/cms/api/preview/pippo-clarabella/EN-us/123???\n"
+ "/en-US/cms/api/preview/pippo/pluto-orazio?\n"
+ "/en-US/cms/api/preview/pippo/pico-archimede/?\n"
+ "/en-US/cms/api/preview/pippo/pico-archimede/\n"
+ "/en-US/cms/api/preview/pippo/pico/archimede\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/minni/amelia#user=Faraci\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/minni/amelia/#user/Faraci\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/minni/amelia/#/user=Faraci\n"
+ "/en-US/cms/api/preview\n"
+ "/en-US/cms/api/preview/\n"
+ "/en-US/cms/api/preview?\n"
+ "/en-US/cms/api/preview/?\n"
+ "/en-US/cms/api/preview#user=Faraci\n"
+ "/en-US/cms/api/preview/#user/&Faraci\n\n"
+ "NOT OK\n"
+ "/en-US/cms/api/preview?#user=Faraci\n"
+ "/en-US/cms/api/preview?#/user=Faraci\n"
+ "/en-US/cms/api/preview?/#/user=Faraci\n"
+ "/en-US/cms/api/preview/?#user=Faraci\n"
+ "/en-US/cms/api/preview/?#/user/Faraci\n"
+ "/en-US/cms/api/preview/?/#/user=Faraci\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/minni/amelia?qui=qua&quo=qui#userArtibani\n"
+ "/en-US/cms/api/preview/pippo/paperino/pluto/minni/amelia/?qui=qua&quo=qui#user/Artibani\n"
+ "/en-US/cms/api/preview?qui=qua&quo=qui#user/Artibani\n"
+ "/en-US/cms/api/preview/?qui=qua&quo=qui#user=Artibani\n"
+ "/en-US/cms/api/preview?#user=Faraci\n"
+ "/en-US/cms/api/preview/?#user/Faraci\n\n\n\n"
+ "Output for Nginx:\n"
+ "/preview/$2?culture=$1&$4";
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