import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^\\/ignition-interlock-device\\/([a-z]*?)\\/(locations)?\\/smart-start-of-([a-z0-9-]*?)(\\/)?$";
final String string = "/ignition-interlock-device/colorado/locations/smart-start-of-alamosa/\n"
+ "/ignition-interlock-device/colorado/locations/smart-start-of-auburn-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-beverly/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-boca-raton-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-brownsville/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-camrose/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-carbondale/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-carson-city/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-centereach/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-charleston-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-charleston/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-danielson/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-defuniak-springs/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-deland-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-durango/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-farmington/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-framingham/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-gallatin/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-gresham/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-gypsum/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-hialeah/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-holly-hill-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-honolulu-3/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-huntington/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-huntsville/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-kennesaw/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-kennewick/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-kissimmee-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-la-crosse/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-laramie/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-lawton/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-longwood/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-malden/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-mckinney/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-medford/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-middletown-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-middletown/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-mildura/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-new-port-richey/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-norco/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-ocala-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-palm-bay-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-palm-bay/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-panama-city-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-port-charlotte-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-richmond-3/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-saint-paul-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-san-marcos/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-santa-ana/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-show-low/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-staunton/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-tallahassee-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-titusville/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-uppsala-2/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-van-wert/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-west-monroe/\n"
+ "/ignition-interlock-device/florida/locations/smart-start-of-west-palm-beach-2/";
final String subst = "/locations/?location_redirect=$3&state=$1";
final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
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