亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美性受xxxx| 国产毛片精品国产一区二区三区| 欧美精品一区二区蜜臀亚洲| 国产精品羞羞答答xxdd | 91在线国内视频| 亚洲另类中文字| 精品乱人伦小说| 欧美日韩国产一区| 久久99国内精品| 日韩 欧美一区二区三区| 国产拍欧美日韩视频二区| 精品国产一区二区三区不卡 | 91久久一区二区| 岛国精品在线观看| 国产精品亚洲综合一区在线观看| 亚洲在线一区二区三区| 国产精品久久久久久久久免费樱桃| 日韩一区二区免费高清| 欧美自拍丝袜亚洲| heyzo一本久久综合| 国产精品18久久久久久久久| 国产成人高清视频| 亚洲精品乱码久久久久久黑人 | 蜜桃av一区二区| 五月天激情小说综合| 亚洲国产精品久久一线不卡| 亚洲欧洲韩国日本视频| 国产精品卡一卡二| 亚洲精品福利视频网站| 亚洲免费观看高清完整版在线| 日韩美女视频19| 一区二区三区四区在线| 亚洲综合清纯丝袜自拍| 亚洲精品视频在线观看免费| 一区二区三区自拍| 亚洲成人av一区| 日本不卡免费在线视频| 狠狠色狠狠色综合| 成人免费高清在线| 色婷婷综合视频在线观看| 337p亚洲精品色噜噜狠狠| 精品区一区二区| 亚洲欧美一区二区三区国产精品| 一区二区三区在线视频免费| 免费成人在线影院| 91在线porny国产在线看| 欧美日韩视频在线一区二区| 日韩一级大片在线观看| 久久久久久久久97黄色工厂| 亚洲人一二三区| 九色综合国产一区二区三区| 成人影视亚洲图片在线| 欧美性一二三区| 国产性做久久久久久| 亚洲最新视频在线观看| 日韩在线播放一区二区| 欧美精三区欧美精三区| 欧美aaa在线| 久久婷婷国产综合精品青草| 国产成人在线观看免费网站| 精品福利av导航| 国产69精品久久777的优势| 国产精品看片你懂得| 色综合天天做天天爱| 亚洲一区二区精品久久av| 717成人午夜免费福利电影| 蜜臀精品一区二区三区在线观看 | 欧美丰满美乳xxx高潮www| 国产精品色哟哟网站| 狠狠v欧美v日韩v亚洲ⅴ| 日韩精品一区二区三区老鸭窝| 亚洲靠逼com| 91免费视频网| 亚洲日本成人在线观看| 99精品一区二区三区| 亚洲视频免费观看| 日本精品免费观看高清观看| 国产精品美女久久久久久久| 99re免费视频精品全部| 亚洲激情男女视频| 欧美精品欧美精品系列| 久久疯狂做爰流白浆xx| 国产婷婷色一区二区三区四区 | 99re这里只有精品首页| 亚洲视频一区在线| 欧美片网站yy| 不卡的电影网站| 中文字幕av不卡| 国产一区二区三区高清播放| 欧美日韩国产首页| 成人欧美一区二区三区黑人麻豆 | 欧美xxxx老人做受| 亚洲国产综合91精品麻豆| 91免费版pro下载短视频| 亚洲图片欧美视频| 精品成人一区二区三区四区| 成人美女视频在线看| 亚洲精品国产视频| 日韩一区二区在线播放| a在线欧美一区| 精品亚洲免费视频| 一区二区三区.www| 26uuu国产在线精品一区二区| 日本韩国欧美在线| 韩国精品一区二区| 亚洲第一主播视频| 国产精品高清亚洲| 久久久久亚洲蜜桃| 欧美久久高跟鞋激| 色婷婷综合在线| 成人av在线电影| 国产乱码精品一区二区三区忘忧草| 亚洲一区二区三区在线播放| 国产精品美女一区二区| 2020日本不卡一区二区视频| 欧美久久久一区| 欧美三级日韩在线| 色噜噜夜夜夜综合网| 99视频精品免费视频| 处破女av一区二区| av激情成人网| 99在线热播精品免费| 91丨porny丨首页| 97精品久久久午夜一区二区三区| 国产精品1区2区3区在线观看| 国产在线不卡一卡二卡三卡四卡| 水野朝阳av一区二区三区| 亚洲线精品一区二区三区| 一区二区三区不卡视频| 亚洲黄色小视频| 亚洲午夜久久久久久久久电影院| 亚洲精品免费播放| 午夜精品久久久久久| 美女视频网站久久| 国产一区二区三区久久悠悠色av| 国产麻豆成人传媒免费观看| 国产一区二区三区免费看| 国内成+人亚洲+欧美+综合在线| 国产一区二区精品久久91| 国产v综合v亚洲欧| 欧美午夜精品一区二区蜜桃| 欧美挠脚心视频网站| 日韩精品一区二区三区在线观看 | 国产精品影音先锋| 99精品国产热久久91蜜凸| 欧美日韩一区成人| 日韩精品一区二区三区四区| 国产精品久久久久久久第一福利| 亚洲免费av网站| 日韩avvvv在线播放| 成人深夜在线观看| 欧美军同video69gay| 欧美妇女性影城| www精品美女久久久tv| 亚洲精品自拍动漫在线| 精品无人区卡一卡二卡三乱码免费卡 | 国产成人av一区二区三区在线| 99riav一区二区三区| 久久蜜桃av一区二区天堂| 亚洲蜜臀av乱码久久精品| 精品一区二区三区日韩| 欧美亚洲一区三区| 精品国产免费人成在线观看| 亚洲一区二区美女| 91香蕉视频黄| 国产日韩欧美精品综合| 精品一区二区三区在线播放 | 国产夜色精品一区二区av| 日韩一区精品字幕| 欧美日韩三级一区| 亚洲综合清纯丝袜自拍| 91丨九色丨蝌蚪丨老版| 国产精品嫩草影院av蜜臀| 国产精品18久久久久久久久久久久| 欧美一区二区三区日韩| 天天做天天摸天天爽国产一区 | 日本vs亚洲vs韩国一区三区 | 久久精品国产99国产| 日韩一区二区三免费高清| 久久99精品国产麻豆不卡| 精品少妇一区二区三区免费观看 | 2020国产成人综合网| 亚洲午夜免费福利视频| 91网站在线观看视频| 国产精品麻豆视频| 懂色一区二区三区免费观看| 国产精品午夜久久| jlzzjlzz亚洲日本少妇| 精品女同一区二区| 国产伦精品一区二区三区免费迷| 精品国产欧美一区二区| 国产精品亚洲专一区二区三区 | 7878成人国产在线观看| 久久9热精品视频| 精品国产成人系列| 美国三级日本三级久久99 | 欧美大片在线观看一区二区| 午夜精品福利在线| 天堂va蜜桃一区二区三区漫画版 | 成人午夜短视频|