public static String convertGlobToRegex ( String pattern ) { pattern = pattern . replaceAll ( "[\\\\\\.\\(\\)\\+\\|\\^\\$]" , "\\\\$0" ) ; pattern = pattern . replaceAll ( "\\[\\\\\\^" , "[^" ) ; pattern = Ruby . String . of ( pattern ) . gsub ( "\\{[^\\}]+\\}" , m -> { m = m . replaceAll ( "," , "|" ) ; m = "(" + m . substring ( 1 , m . lastIndexOf ( ' ' ) ) + ")" ; return m ; } ) . toS ( ) ; pattern = pattern . replaceAll ( "\\?" , ".{1}" ) ; pattern = pattern . replaceAll ( "\\*\\*/" , "(.+/)?" ) ; pattern = pattern . replaceAll ( "\\*" , "[^/]*" ) ; return pattern ; }
Converts a glob pattern to Regex string .