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

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

?? re.java

?? Mac OS X 10.4.9 for x86 Source Code gcc 實現源代碼
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
/* gnu/regexp/RE.java   Copyright (C) 1998-2001, 2004 Free Software Foundation, Inc.This file is part of GNU Classpath.GNU Classpath is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.GNU Classpath is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Classpath; see the file COPYING.  If not, write to theFree Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA02111-1307 USA.Linking this library statically or dynamically with other modules ismaking a combined work based on this library.  Thus, the terms andconditions of the GNU General Public License cover the wholecombination.As a special exception, the copyright holders of this library give youpermission to link this library with independent modules to produce anexecutable, regardless of the license terms of these independentmodules, and to copy and distribute the resulting executable underterms of your choice, provided that you also meet, for each linkedindependent module, the terms and conditions of the license of thatmodule.  An independent module is a module which is not derived fromor based on this library.  If you modify this library, you may extendthis exception to your version of the library, but you are notobligated to do so.  If you do not wish to do so, delete thisexception statement from your version. */package gnu.regexp;import java.io.InputStream;import java.io.Serializable;import java.util.Locale;import java.util.PropertyResourceBundle;import java.util.ResourceBundle;import java.util.Vector;/** * RE provides the user interface for compiling and matching regular * expressions. * <P> * A regular expression object (class RE) is compiled by constructing it * from a String, StringBuffer or character array, with optional  * compilation flags (below) * and an optional syntax specification (see RESyntax; if not specified, * <code>RESyntax.RE_SYNTAX_PERL5</code> is used). * <P> * Once compiled, a regular expression object is reusable as well as * threadsafe: multiple threads can use the RE instance simultaneously * to match against different input text. * <P> * Various methods attempt to match input text against a compiled * regular expression.  These methods are: * <LI><code>isMatch</code>: returns true if the input text in its * entirety matches the regular expression pattern. * <LI><code>getMatch</code>: returns the first match found in the * input text, or null if no match is found. * <LI><code>getAllMatches</code>: returns an array of all * non-overlapping matches found in the input text.  If no matches are * found, the array is zero-length. * <LI><code>substitute</code>: substitute the first occurence of the * pattern in the input text with a replacement string (which may * include metacharacters $0-$9, see REMatch.substituteInto). * <LI><code>substituteAll</code>: same as above, but repeat for each * match before returning. * <LI><code>getMatchEnumeration</code>: returns an REMatchEnumeration * object that allows iteration over the matches (see * REMatchEnumeration for some reasons why you may want to do this * instead of using <code>getAllMatches</code>. * <P> * * These methods all have similar argument lists.  The input can be a * String, a character array, a StringBuffer, or an * InputStream of some sort.  Note that when using an * InputStream, the stream read position cannot be guaranteed after * attempting a match (this is not a bug, but a consequence of the way * regular expressions work).  Using an REMatchEnumeration can * eliminate most positioning problems. * * <P> * * The optional index argument specifies the offset from the beginning * of the text at which the search should start (see the descriptions * of some of the execution flags for how this can affect positional * pattern operators).  For an InputStream, this means an * offset from the current read position, so subsequent calls with the * same index argument on an InputStream will not * necessarily access the same position on the stream, whereas * repeated searches at a given index in a fixed string will return * consistent results. * * <P> * You can optionally affect the execution environment by using a * combination of execution flags (constants listed below). *  * <P> * All operations on a regular expression are performed in a * thread-safe manner. * * @author <A HREF="mailto:wes@cacas.org">Wes Biggs</A> * @version 1.1.5-dev, to be released */public class RE extends REToken {  private static final class IntPair implements Serializable {    public int first, second;  }  private static final class CharUnit implements Serializable {    public char ch;    public boolean bk;  }  // This String will be returned by getVersion()  private static final String VERSION = "1.1.5-dev";  // The localized strings are kept in a separate file  private static ResourceBundle messages = PropertyResourceBundle.getBundle("gnu/regexp/MessagesBundle", Locale.getDefault());  // These are, respectively, the first and last tokens in our linked list  // If there is only one token, firstToken == lastToken  private REToken firstToken, lastToken;  // This is the number of subexpressions in this regular expression,  // with a minimum value of zero.  Returned by getNumSubs()  private int numSubs;    /** Minimum length, in characters, of any possible match. */    private int minimumLength;  /**   * Compilation flag. Do  not  differentiate  case.   Subsequent   * searches  using  this  RE will be case insensitive.   */  public static final int REG_ICASE = 2;  /**   * Compilation flag. The match-any-character operator (dot)   * will match a newline character.  When set this overrides the syntax   * bit RE_DOT_NEWLINE (see RESyntax for details).  This is equivalent to   * the "/s" operator in Perl.   */  public static final int REG_DOT_NEWLINE = 4;  /**   * Compilation flag. Use multiline mode.  In this mode, the ^ and $   * anchors will match based on newlines within the input. This is   * equivalent to the "/m" operator in Perl.   */  public static final int REG_MULTILINE = 8;  /**   * Execution flag.   * The match-beginning operator (^) will not match at the beginning   * of the input string. Useful for matching on a substring when you   * know the context of the input is such that position zero of the   * input to the match test is not actually position zero of the text.   * <P>   * This example demonstrates the results of various ways of matching on   * a substring.   * <P>   * <CODE>   * String s = "food bar fool";<BR>   * RE exp = new RE("^foo.");<BR>   * REMatch m0 = exp.getMatch(s);<BR>   * REMatch m1 = exp.getMatch(s.substring(8));<BR>   * REMatch m2 = exp.getMatch(s.substring(8),0,RE.REG_NOTBOL); <BR>   * REMatch m3 = exp.getMatch(s,8);                            <BR>   * REMatch m4 = exp.getMatch(s,8,RE.REG_ANCHORINDEX);         <BR>   * <P>   * // Results:<BR>   * //  m0.toString(): "food"<BR>   * //  m1.toString(): "fool"<BR>   * //  m2.toString(): null<BR>   * //  m3.toString(): null<BR>   * //  m4.toString(): "fool"<BR>   * </CODE>   */  public static final int REG_NOTBOL = 16;  /**   * Execution flag.   * The match-end operator ($) does not match at the end   * of the input string. Useful for matching on substrings.   */  public static final int REG_NOTEOL = 32;  /**   * Execution flag.   * When a match method is invoked that starts matching at a non-zero   * index into the input, treat the input as if it begins at the index   * given.  The effect of this flag is that the engine does not "see"   * any text in the input before the given index.  This is useful so   * that the match-beginning operator (^) matches not at position 0   * in the input string, but at the position the search started at   * (based on the index input given to the getMatch function).  See   * the example under REG_NOTBOL.  It also affects the use of the \&lt;   * and \b operators.   */  public static final int REG_ANCHORINDEX = 64;  /**   * Execution flag.   * The substitute and substituteAll methods will not attempt to   * interpolate occurrences of $1-$9 in the replacement text with   * the corresponding subexpressions.  For example, you may want to   * replace all matches of "one dollar" with "$1".   */  public static final int REG_NO_INTERPOLATE = 128;  /** Returns a string representing the version of the gnu.regexp package. */  public static final String version() {    return VERSION;  }  // Retrieves a message from the ResourceBundle  static final String getLocalizedMessage(String key) {    return messages.getString(key);  }  /**   * Constructs a regular expression pattern buffer without any compilation   * flags set, and using the default syntax (RESyntax.RE_SYNTAX_PERL5).   *   * @param pattern A regular expression pattern, in the form of a String,   *   StringBuffer or char[].  Other input types will be converted to   *   strings using the toString() method.   * @exception REException The input pattern could not be parsed.   * @exception NullPointerException The pattern was null.   */  public RE(Object pattern) throws REException {    this(pattern,0,RESyntax.RE_SYNTAX_PERL5,0,0);  }  /**   * Constructs a regular expression pattern buffer using the specified   * compilation flags and the default syntax (RESyntax.RE_SYNTAX_PERL5).   *   * @param pattern A regular expression pattern, in the form of a String,   *   StringBuffer, or char[].  Other input types will be converted to   *   strings using the toString() method.   * @param cflags The logical OR of any combination of the compilation flags listed above.   * @exception REException The input pattern could not be parsed.   * @exception NullPointerException The pattern was null.   */  public RE(Object pattern, int cflags) throws REException {    this(pattern,cflags,RESyntax.RE_SYNTAX_PERL5,0,0);  }  /**   * Constructs a regular expression pattern buffer using the specified   * compilation flags and regular expression syntax.   *   * @param pattern A regular expression pattern, in the form of a String,   *   StringBuffer, or char[].  Other input types will be converted to   *   strings using the toString() method.   * @param cflags The logical OR of any combination of the compilation flags listed above.   * @param syntax The type of regular expression syntax to use.   * @exception REException The input pattern could not be parsed.   * @exception NullPointerException The pattern was null.   */  public RE(Object pattern, int cflags, RESyntax syntax) throws REException {    this(pattern,cflags,syntax,0,0);  }  // internal constructor used for alternation  private RE(REToken first, REToken last,int subs, int subIndex, int minLength) {    super(subIndex);    firstToken = first;    lastToken = last;    numSubs = subs;    minimumLength = minLength;    addToken(new RETokenEndSub(subIndex));  }  private RE(Object patternObj, int cflags, RESyntax syntax, int myIndex, int nextSub) throws REException {    super(myIndex); // Subexpression index of this token.    initialize(patternObj, cflags, syntax, myIndex, nextSub);  }    // For use by subclasses    protected RE() { super(0); }    // The meat of construction  protected void initialize(Object patternObj, int cflags, RESyntax syntax, int myIndex, int nextSub) throws REException {      char[] pattern;    if (patternObj instanceof String) {      pattern = ((String) patternObj).toCharArray();    } else if (patternObj instanceof char[]) {      pattern = (char[]) patternObj;    } else if (patternObj instanceof StringBuffer) {      pattern = new char [((StringBuffer) patternObj).length()];      ((StringBuffer) patternObj).getChars(0,pattern.length,pattern,0);    } else {	pattern = patternObj.toString().toCharArray();    }    int pLength = pattern.length;    numSubs = 0; // Number of subexpressions in this token.    Vector branches = null;    // linked list of tokens (sort of -- some closed loops can exist)    firstToken = lastToken = null;    // Precalculate these so we don't pay for the math every time we    // need to access them.    boolean insens = ((cflags & REG_ICASE) > 0);    // Parse pattern into tokens.  Does anyone know if it's more efficient    // to use char[] than a String.charAt()?  I'm assuming so.    // index tracks the position in the char array    int index = 0;    // this will be the current parse character (pattern[index])    CharUnit unit = new CharUnit();    // This is used for {x,y} calculations    IntPair minMax = new IntPair();    // Buffer a token so we can create a TokenRepeated, etc.    REToken currentToken = null;    char ch;    boolean quot = false;    while (index < pLength) {      // read the next character unit (including backslash escapes)      index = getCharUnit(pattern,index,unit,quot);      if (unit.bk)        if (unit.ch == 'Q') {          quot = true;          continue;        } else if (unit.ch == 'E') {          quot = false;          continue;        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本大道久久精品懂色aⅴ| 92国产精品观看| 国产精品久久久久久久蜜臀 | 成人午夜视频在线观看| 亚洲一区二区三区中文字幕| 久久综合久久综合亚洲| 欧美亚洲丝袜传媒另类| 国产高清不卡一区二区| 午夜精品视频在线观看| 亚洲免费在线观看| 久久久久久久久伊人| 欧美日韩中文国产| 99久久国产综合色|国产精品| 欧美aaaaa成人免费观看视频| 亚洲精品福利视频网站| 国产精品久久国产精麻豆99网站| 欧美xxxx在线观看| 欧美人与禽zozo性伦| 91亚洲精品乱码久久久久久蜜桃| 国产乱子伦视频一区二区三区| 日韩av一区二区在线影视| 一区二区三区精品| 亚洲欧洲精品一区二区三区不卡| 久久久电影一区二区三区| 精品入口麻豆88视频| 欧美精品粉嫩高潮一区二区| 欧洲视频一区二区| 91麻豆国产在线观看| 成人精品在线视频观看| 国产成人午夜精品5599| 狠狠狠色丁香婷婷综合激情| 精品制服美女丁香| 久久精品国产秦先生| 日韩国产在线观看| 免费人成黄页网站在线一区二区| 午夜av区久久| 午夜精品福利一区二区三区av| 一区二区三区精品| 亚洲午夜国产一区99re久久| 一区二区三区在线免费视频| 一区二区三区中文字幕精品精品 | 丝袜美腿一区二区三区| 亚洲一区免费视频| 亚洲一区二区在线播放相泽| 亚洲一区二区三区美女| 亚洲成人av电影| 爽好久久久欧美精品| 蜜桃视频在线观看一区| 精品午夜久久福利影院| 国产剧情一区二区| av亚洲产国偷v产偷v自拍| 91毛片在线观看| 欧美三级中文字幕在线观看| 欧美日韩国产综合视频在线观看| 6080亚洲精品一区二区| 精品日韩欧美在线| 久久精品亚洲乱码伦伦中文 | 在线播放91灌醉迷j高跟美女| 欧美一卡二卡三卡四卡| 精品国产污污免费网站入口| 久久九九99视频| 最新日韩在线视频| 香蕉加勒比综合久久| 麻豆视频观看网址久久| 国产高清不卡二三区| 91极品美女在线| 欧美一区二区三区不卡| 国产欧美一区二区精品性| 亚洲欧洲另类国产综合| 五月激情综合色| 国产专区欧美精品| 色婷婷香蕉在线一区二区| 3atv在线一区二区三区| 国产婷婷色一区二区三区| 自拍偷拍亚洲激情| 奇米精品一区二区三区四区 | 欧美人与禽zozo性伦| 精品99一区二区| 亚洲人成伊人成综合网小说| 奇米影视一区二区三区| 成人不卡免费av| 欧美精品乱码久久久久久按摩| 久久这里只有精品视频网| 亚洲欧美经典视频| 美国十次综合导航| 欧美日韩成人激情| 欧美日韩久久久久久| 91在线观看高清| 99国产精品久久久久久久久久久| 欧美亚洲动漫精品| 久久亚洲欧美国产精品乐播| 亚洲欧美二区三区| 久久精品国产精品亚洲精品| 99久久精品费精品国产一区二区| 日韩一区二区三区免费观看| 国产三级精品视频| 视频一区二区欧美| 波多野结衣视频一区| 日韩欧美综合在线| 亚洲综合在线观看视频| 国产福利精品导航| 日韩午夜电影在线观看| 亚洲色图欧美激情| 国产精品18久久久久久久久| 欧美精选午夜久久久乱码6080| 中文字幕亚洲综合久久菠萝蜜| 麻豆国产精品一区二区三区| 欧美日韩一区在线观看| 国产精品国产三级国产三级人妇 | 奇米在线7777在线精品| 色婷婷国产精品综合在线观看| 国产欧美日韩卡一| 国产一区二区三区香蕉| 欧美一区二区视频免费观看| 一区二区三区免费网站| 99麻豆久久久国产精品免费| 精品久久国产字幕高潮| 丝袜美腿亚洲综合| 欧美日韩激情一区| 亚洲一区二区av在线| 91免费精品国自产拍在线不卡 | 中文字幕亚洲综合久久菠萝蜜| 精品一区二区在线免费观看| 欧美手机在线视频| 一区二区三区在线观看网站| 高清不卡一二三区| 久久综合99re88久久爱| 久久99精品久久久久久动态图| 88在线观看91蜜桃国自产| 石原莉奈一区二区三区在线观看| 色综合天天视频在线观看 | 最新中文字幕一区二区三区| 粉嫩欧美一区二区三区高清影视| 精品嫩草影院久久| 久草精品在线观看| 精品免费视频.| 麻豆久久久久久| 精品国产免费一区二区三区四区 | 美女视频一区在线观看| 777午夜精品免费视频| 日韩国产精品大片| 日韩三级电影网址| 国产一区二区女| 国产欧美视频一区二区三区| 高清av一区二区| 亚洲色图第一区| 欧美影视一区在线| 午夜久久久久久| 日韩精品一区二区三区老鸭窝| 久久99国产精品久久99果冻传媒| 2014亚洲片线观看视频免费| 国产一区二区免费看| 国产精品久久夜| 色久优优欧美色久优优| 亚洲1区2区3区视频| 欧美一区二区三区在线视频| 久久国产人妖系列| 精品久久国产97色综合| 成熟亚洲日本毛茸茸凸凹| 自拍偷自拍亚洲精品播放| 欧美在线色视频| 日韩高清电影一区| 精品成人在线观看| 99re这里只有精品视频首页| 亚洲精品中文字幕在线观看| 欧美日韩久久不卡| 精品亚洲aⅴ乱码一区二区三区| 亚洲国产精品ⅴa在线观看| 色94色欧美sute亚洲线路一久| 亚洲国产wwwccc36天堂| 久久免费美女视频| 91国产免费看| 麻豆高清免费国产一区| 国产精品日韩精品欧美在线| 欧美日韩在线观看一区二区 | 成人av电影在线| 性感美女极品91精品| 久久综合九色综合欧美亚洲| 成人亚洲一区二区一| 亚洲国产精品视频| 亚洲国产精品成人综合| 欧美狂野另类xxxxoooo| 极品美女销魂一区二区三区| 国产一区二区视频在线| 亚洲另类在线制服丝袜| 欧美电视剧在线看免费| 不卡的电视剧免费网站有什么| 亚洲成人免费在线| 日韩中文欧美在线| 北条麻妃一区二区三区| 日韩一区二区三区三四区视频在线观看 | 国产高清成人在线| 夜夜嗨av一区二区三区中文字幕 | 中文字幕不卡在线观看| 香港成人在线视频| 欧美国产精品中文字幕| 欧美乱妇23p| 色天天综合色天天久久| 国内不卡的二区三区中文字幕 | 美女视频网站久久|