import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?(DEFINE) \n"
+ " (?<varchar> [[:alnum:]] | [-_] )\n"
+ " (?<funcname> [[:alpha:]](?&varchar)* )\n"
+ " (?<varname> \\$(?&funcname) )\n"
+ " (?<typepart> [[:alpha:][[:alnum:]]*)\n"
+ " (?<typename> \\[ (?&typepart) ( \\.(?&typepart) )* \\] )\n"
+ " (?<arg> (?&typename)? \\s* (?&varname) ) \n"
+ " (?<arglist> (?&arg) ( \\s*,\\s* (?&arg) )* )\n"
+ " (?<args> ( \\( (?&arglist)? \\) )? )\n"
+ " (?<func_decl> ^ \\s* function \\s+ (?&funcname) \\s* (?&args) \\s* \\{ )\n"
+ ") \n"
+ "(?&func_decl)";
final String string = "function Main ($x, [string]$y) {\n"
+ " function Get-Content {\n"
+ " function main_- () { \n"
+ "function main([string.Array] $mfd_) { ";
final String subst = "";
final Pattern pattern = Pattern.compile(regex, Pattern.COMMENTS | 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