亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? filenamepattern.java

?? 一個關于java 的常用工具包
?? JAVA
字號:
package org.jutil.io.fileset;import java.io.File;import jregex.Replacer;import org.jutil.jregex.Pattern;/** * <p>A class of filename patterns.</p> * * <center> *   <img src="doc-files/FileNamePattern.png"/> * </center> * * <p>A pattern consists of a sequence of primitive patterns separated by <code>File.separator</code>. * E.g. on unix platforms:</p> * <ul><li><code>primitive_pattern/primitive_pattern/primitive_pattern</code></li></ul> * * <p>A primitive pattern consists of characters that may appear in a filename or directory name  * (it may not contain <code>File.separator</code>, which isn't allowed on any platform anyway). * The * character has a special meaning. A single * matches any number of characters in a  * primitive_pattern. A double * matches any pattern. Some examples will make this clear. * <ul> *   <li><font color="blue"><code>document.tex</code></font> : matches a file named "document.tex" in the base directory.</li> *   <li><font color="blue"><code>do*tex</code></font> : matches all file of which the name starts  *   with "do" and ends with "tex".</li> *   <li><font color="blue"><code>Documents/*</code></font> : matches all files which directly reside in the "Documents" directory, which *   is a direct subdirectory of the base directory.</li> *   <li><font color="blue"><code>../Documents/*</code></font> : matches all files which directly *   reside in the "Documents" directory, which is a direct subdirectory of parent directory of  *   the base directory.</li> *   <li><font color="blue"><code>Documents/Presentation*&#x002f;*</code></font> : matches all files directly in a directory with a name *   starting with "Presentation", which resides directly in "Documents". The "Documents" directory again is *   a direct subdirectory of the base directory. *   <li><font color="blue"><code>**&#x002f;*</code></font> : matches all files in all directories  *   (recursively) in the base directory</li> *   <li><font color="blue"><code>Documents&#x002f;**&#x002f;*</code></font> : matches all files in all  *   subdirectories (recursively) in the "Documents" directory.</li> *   <li><font color="blue"><code>Documents&#x002f;**&#x002f;papers&#x002f;**&#x002f;*.pdf</code></font> :  *   matches all files with "pdf" as extension which resides in a directory which is a subdirectory of *   "Documents" and has a directory "papers" in its path relative to "Documents".</li> *   <li><font color="blue"><code>Documents&#x002f;**&#x002f;Presentation*&#x002f;**&#x002f;*.pdf</code></font> *   : matches the same as the previous pattern, but now with a directory in the path relative to "Documents" *   which begins with "Presentation".</li> * </ul> * * @path    $Source: /cvsroot/org-jutil/jutil.org/src/org/jutil/io/fileset/FileNamePattern.java,v $ * @version $Revision: 1.2 $ * @date    $Date: 2002/09/07 09:24:10 $ * @state   $State: Exp $ * @author  Marko van Dooren * @release $Name:  $ */public class FileNamePattern {	/**	 * Initialize a new FileNamePattern with the given pattern.	 *	 * @param pattern	 *        The pattern for the new PatternPredicate.	 */ /*@	 @ public behavior	 @   @ pre pattern != null;	 @   @ post getPattern() == pattern;	 @*/	public FileNamePattern(String pattern) {    _pattern = pattern;    _regexPattern = patternToRegex(pattern);	}    /**   * Return the pattern of this PatternPredicate.   */ /*@   @ public behavior   @   @ post \result != null;   @*/  public String getPattern() {    return _pattern;  }  /**   * Return the regex pattern of this PatternPredicate.   */ /*@   @ public behavior   @   @ post \result != null;   @ // Waiting for switch to jdk 1.4 for formal specifications.   @*/  public String getRegexPattern() {    return _regexPattern;  }  /**   * <p>Return a String that represents a file separator in a regular expression.   * This method is required because \ is used as escape character.</p>   */ /*@   @ public behavior   @   @ post \result != null;   @ post File.separator.equals("\\") ==> \result.equals("\\\\");   @ post ! File.separator.equals("\\") ==> \result.equals(File.separator);   @*/  public String getRegexSeparator() {    if (File.separator.equals("\\")) {      return _doubleSeparator;    }    else {      return File.separator;    }  }//  /**//   * <p>Transform the given pattern to a regular expression.</p>//   *//   * @param pattern//   *        The pattern to transform.//   *//   * <p>This method performs the following transformations on//   * <a href="FileNamePattern.html#getPattern()"><code>getPattern()</code></a>.//   * <ul>//   *  <li>Transform ** into a pattern that matches any sequence of directories using //   *  <a href="FileNamePattern.html#getStarStarTransformer()"><code>getStarStarTransformer()</code></a></li>//   *  <li>Transform * into a pattern that matches any sequence of characters exception <code>//   *  File.separator</code> using //   *  <a href="FileNamePattern.html#getStarTransformer()"><code>getStarTransformer()</code></a></li>//   *  <li>Transform 2 consecutive occurrences of <code>File.separator</code> by 1 occurrence using //   *  <a href="FileNamePattern.html#getSlashSlashTransformer()"><code>getSlashSlashTransformer()</code></a></li>//   *  <li>Remove ./ occurrences using //   *  <a href="FileNamePattern.html#getDotSlashTransformer()"><code>getDotSlashTransformer()</code></a></li>//   * </ul>//   */// /*@//   @ public behavior//   @//   @ pre pattern != null;//   @//   @ post \result.equals(//   @        getStarStarTransformer().replace(//   @          getStarTransformer().replace(//   @            getSlashSlashTransformer().replace(//   @              getDotSlashTransformer().replace(pattern)//   @            )//   @          )//   @        )//   @      );//   @*/  private String patternToRegex(String pattern) {    return _starStarTransformer.replace(        _starTransformer.replace(          _slashSlashRemover.replace(              _dotSlashRemover.replace(pattern)            )          )      );  }    private Replacer _dotSlashRemover = new Pattern("[^\\.]\\./").replacer("");  private Replacer _slashSlashRemover = new Pattern(getRegexSeparator() + "{2,}").replacer(File.separator);  private Replacer _starTransformer = new Pattern("(([^\\\\]|^)(\\\\\\\\)+|([^\\\\\\*]|^)|([^\\\\]|^)(\\\\\\\\)*\\\\\\*)\\*([^\\*]|$)").replacer("$1[^"+File.separator+"]*$7");  private Replacer _starStarTransformer = new Pattern("\\*\\*([^\\*]|$)").replacer("(.*$1)?"); /*@   @ private invariant _pattern != null;   @*/  private String _pattern; /*@   @ private invariant _regexPattern != null;   @*/  private String _regexPattern;  private final static String _doubleSeparator = File.separator + File.separator;}/* * <copyright>Copyright (C) 1997-2002. This software is copyrighted by  * the people and entities mentioned after the "@author" tags above, on  * behalf of the JUTIL.ORG Project. The copyright is dated by the dates  * after the "@date" tags above. All rights reserved. * This software is published under the terms of the JUTIL.ORG Software * License version 1.1 or later, a copy of which has been included with * this distribution in the LICENSE file, which can also be found at * http://org-jutil.sourceforge.net/LICENSE. This software is distributed  * WITHOUT ANY WARRANTY; without even the implied warranty of  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  * See the JUTIL.ORG Software License for more details. For more information, * please see http://org-jutil.sourceforge.net/</copyright> */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜诱惑制服诱惑色一区在线观看| 国产亚洲污的网站| 在线一区二区三区四区五区 | 另类小说一区二区三区| 视频一区二区国产| 午夜精品福利久久久| 一区二区在线免费观看| 亚洲国产日韩a在线播放| 亚洲一区二区在线视频| 亚洲高清免费观看高清完整版在线观看| 一区二区视频在线| 性做久久久久久久久| 毛片不卡一区二区| 国产九色精品成人porny| thepron国产精品| 在线亚洲免费视频| 日韩欧美123| 中文字幕视频一区| 一个色妞综合视频在线观看| 午夜欧美一区二区三区在线播放| 男女男精品视频| 波多野结衣中文一区| 欧美午夜精品理论片a级按摩| 宅男噜噜噜66一区二区66| 精品日韩99亚洲| 国产精品不卡一区| 青青草91视频| 成人国产精品免费观看| 欧美精品色综合| 日本一二三不卡| 亚洲一区二区三区中文字幕在线| 全部av―极品视觉盛宴亚洲| 岛国精品一区二区| 6080yy午夜一二三区久久| 久久久久国产成人精品亚洲午夜| 亚洲精品中文字幕在线观看| 理论电影国产精品| 91黄色在线观看| 国产女主播在线一区二区| 亚洲一区二区三区中文字幕| 国产精品主播直播| 欧美区视频在线观看| 成人免费在线视频| 麻豆国产91在线播放| 在线观看视频一区二区| 欧美激情自拍偷拍| 久久99精品久久久久| 欧美影视一区二区三区| 国产精品国产三级国产aⅴ原创 | 777欧美精品| 国产网站一区二区三区| 日韩va欧美va亚洲va久久| 成人免费高清视频在线观看| 欧美成人aa大片| 亚洲国产wwwccc36天堂| 99re8在线精品视频免费播放| 精品国产91洋老外米糕| 日日噜噜夜夜狠狠视频欧美人| 91在线观看美女| 国产欧美精品在线观看| 国产福利一区二区三区| 日韩欧美电影一区| 免费在线视频一区| 69堂国产成人免费视频| 亚洲成人高清在线| 欧美日本一道本| 亚洲高清一区二区三区| 色吊一区二区三区| 中文字幕在线播放不卡一区| 国产精品综合av一区二区国产馆| 日韩欧美你懂的| 美女视频黄 久久| 欧美成va人片在线观看| 久久99久久99小草精品免视看| 欧美精品自拍偷拍| 喷水一区二区三区| 精品国产91久久久久久久妲己| 国产一区视频在线看| 久久久久久9999| av一区二区三区黑人| 亚洲天堂中文字幕| 日本韩国一区二区| 偷拍日韩校园综合在线| 777亚洲妇女| 国产伦精品一区二区三区免费| 久久久久国产精品厨房| 成人三级伦理片| 亚洲激情男女视频| 欧美精品在线视频| 国产福利一区二区三区视频 | 精品欧美黑人一区二区三区| 久久99精品国产.久久久久| 久久一夜天堂av一区二区三区| 国产成人精品免费在线| 自拍偷拍亚洲综合| 欧美日本国产一区| 国产露脸91国语对白| 亚洲欧洲av另类| 欧美精品黑人性xxxx| 久久99久久久久| 亚洲色图在线视频| 欧美一区二区三区在线| 国产福利一区二区三区视频在线 | 久久久影视传媒| 在线观看免费亚洲| 久久99精品久久久久婷婷| 亚洲欧美在线视频| 欧美一区二区三区免费在线看| 国产老肥熟一区二区三区| 亚洲三级电影全部在线观看高清| 欧美日韩国产色站一区二区三区| 日本视频在线一区| 国产精品传媒在线| 中文字幕亚洲区| 欧美精品三级在线观看| 成人免费高清视频| 精品一区二区三区在线视频| 亚洲免费大片在线观看| 精品国产乱码久久久久久闺蜜| 色综合天天综合网天天看片| 九一久久久久久| 日韩精品一二区| 一级做a爱片久久| 国产亚洲成av人在线观看导航| 欧美日韩一区二区三区视频| 国产不卡一区视频| 毛片基地黄久久久久久天堂| 亚洲影视在线观看| 17c精品麻豆一区二区免费| 精品国产伦一区二区三区免费| 欧美在线高清视频| 成人av网址在线| 国产成人亚洲综合a∨猫咪| 奇米一区二区三区av| 亚洲bt欧美bt精品777| 亚洲人成网站在线| 中文字幕va一区二区三区| 久久综合久久99| 日韩精品在线看片z| 日韩一区二区三区视频在线| 欧美性猛交xxxxxxxx| 色综合久久中文字幕| 播五月开心婷婷综合| 国产成人精品免费| 国产激情精品久久久第一区二区 | 在线观看免费视频综合| 91麻豆免费看片| 99久久婷婷国产综合精品电影| 岛国一区二区在线观看| 成人黄色av网站在线| 不卡欧美aaaaa| 91免费看`日韩一区二区| 成人激情黄色小说| 色综合久久久久综合体| 91免费版pro下载短视频| 91麻豆免费看| 欧美乱熟臀69xxxxxx| 日韩三级精品电影久久久| 日韩视频不卡中文| 久久麻豆一区二区| 中文字幕一区二区三中文字幕| 中文字幕一区视频| 一个色综合网站| 免费观看一级特黄欧美大片| 精品一区二区精品| 风间由美性色一区二区三区| 99久久久精品| 在线观看网站黄不卡| 欧美一区二区美女| 久久蜜桃一区二区| 亚洲欧美偷拍另类a∨色屁股| 一区二区三区欧美视频| 首页欧美精品中文字幕| 国产盗摄一区二区| 色视频成人在线观看免| 日韩欧美亚洲国产另类| 国产精品进线69影院| 亚洲高清三级视频| 国产麻豆精品在线| 欧美视频日韩视频| 久久久久久亚洲综合影院红桃| 国产精品电影一区二区| 日韩和欧美一区二区| 岛国精品在线观看| 91精品国产品国语在线不卡| 久久亚洲一区二区三区四区| 亚洲色图在线看| 国产精品一区专区| 欧美日韩电影在线播放| 国产清纯白嫩初高生在线观看91 | 欧美日本韩国一区二区三区视频 | 国产制服丝袜一区| 91黄色免费观看| 久久久www免费人成精品| 亚洲丰满少妇videoshd| 国产 日韩 欧美大片| 日韩一级二级三级| 亚洲一区二区三区爽爽爽爽爽 | 国产精品久久一级| 久久精品国产一区二区三区免费看|