blob: 02f4484559402b128cba174ad65d10996a7c210a [file] [log] [blame]
/*
* Copyright 2008 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.mockftpserver.core.util;
/**
* Contains static utility methods related to pattern-matching and regular expressions.
*
* @author Chris Mair
* @version $Revision$ - $Date$
*/
public class PatternUtil {
/**
* Return true if the specified String contains one or more wildcard characters ('?' or '*')
*
* @param string - the String to check
* @return true if the String contains wildcards
*/
public static boolean containsWildcards(String string) {
return string.indexOf("*") != -1 || string.indexOf("?") != -1;
}
/**
* Convert the specified String, optionally containing wildcards (? or *), to a regular expression String
*
* @param stringWithWildcards - the String to convert, optionally containing wildcards (? or *)
* @return an equivalent regex String
* @throws AssertionError - if the stringWithWildcards is null
*/
public static String convertStringWithWildcardsToRegex(String stringWithWildcards) {
Assert.notNull(stringWithWildcards, "stringWithWildcards");
StringBuffer result = new StringBuffer();
for (int i = 0; i < stringWithWildcards.length(); i++) {
char ch = stringWithWildcards.charAt(i);
switch (ch) {
case '*':
result.append(".*");
break;
case '?':
result.append('.');
break;
case '$':
case '|':
case '[':
case ']':
case '(':
case ')':
case '.':
case ':':
case '{':
case '}':
case '\\':
case '^':
case '+':
result.append('\\');
result.append(ch);
break;
default:
result.append(ch);
}
}
return result.toString();
}
/**
* Private constructor to prevent instantiation. All members are static.
*/
private PatternUtil() {
}
}