⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regexpfilefilter.java

📁 Jodd是一个开源的公用Java基础类库
💻 JAVA
字号:
package jodd.file.filters;

import java.io.File;
import java.io.FileFilter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import jodd.util.StringFlags;
import jodd.util.StringUtil;

/**
 * FileFilter that matches files with use of Regular Expression.
 *
 * Here are some tips for regular expressions:
 * <ul>
 *   <li>.* : matches any number of character</li>
 *   <li>.? : matches zero or one character</li>
 * </ul>
 *
 * For more details check the <code>FileFilterAbs</code> documentation.
 *
 * @see jodd.file.filters.FileFilterAbs
 */
public class RegExpFileFilter extends FileFilterAbs {

	// ---------------------------------------------------------------- construction

	/**
	 * Regular Expression file filter.
	 */
	public RegExpFileFilter(String pattern, String opt) {
		super(pattern, opt);
	}

	/**
	 * Regular Expression file filter with default behaviour.
	 *
	 * @param pattern pattern
	 */
	public RegExpFileFilter(String pattern) {
		super(pattern);
	}

	/**
	 * Regular Expression file filter with no behaviour and that may
	 * be configured later.
	 */
	public RegExpFileFilter() {
		super();
	}

	// ---------------------------------------------------------------- speed optimization

	private Pattern regexpPattern = null;

	/**
	 * Sets the new pattern. It overrides default method because of speed
	 * optimization.
	 *
	 * @param p      pattern
	 */
	public void setPattern(String p) {
		super.setPattern(p);
		if (pattern != null) {
			regexpPattern = Pattern.compile(pattern);
		}
	}

	// ---------------------------------------------------------------- FileFilterAbs.match()

	/**
	 * Regular expression matching.
	 *
	 * @param file   File to match.
	 *
	 * @return <code>true</code> if file name matches regular expression pattern,
	 *         <code>false</code> otherwise.
	 */
	public boolean match(File file) {
		Matcher matcher = regexpPattern.matcher(getFileName(file));	// regexp match
		return matcher.matches();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -