import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(([\\|&]|return|[^=<>|\\*]=|\\(|\\[)\\s*)([a-zA-Z\\._]+)\\s*\\?\\s*\\3\\s*:\\s*";
final String string = "SHOULD NOT MATCH\n"
+ "(value <= low ? low : (value >= high ? high : value))\n\n"
+ "SHOULD MATCH\n"
+ "res = a || b?b:c\n"
+ "res = a || b?b:c?c:d\n"
+ "res = a?a:b?b:c?c:d?d:e?e:\"f\"\n"
+ "res = a?a:b?b: c?c: d?d : e ?e : \"f\"\n"
+ "return GLOB.using_map.system_name ? GLOB.using_map.system_name : generate_system_name()\n"
+ "foo = bar ? bar : \"john\"\n"
+ "var=joo?joo:juu\n"
+ "proc(foo? foo : bar)\n"
+ "if(baz?baz:car)";
final String subst = "\\1\\3 || ";
final Pattern pattern = Pattern.compile(regex, 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