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

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

?? regexpimpl.java

?? 主要的怎么樣結合java 和 javascript!
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
     * Analog of REGEXP_PAREN_SUBSTRING in C jsregexp.h.     * Assumes zero-based; i.e., for $3, i==2     */    SubString getParenSubString(int i)    {        if (parens != null && i < parens.length) {            SubString parsub = parens[i];            if (parsub != null) {                return parsub;            }        }        return SubString.emptySubString;    }    /*     * Analog of match_glob() in jsstr.c     */    private static void match_glob(GlobData mdata, Context cx,                                   Scriptable scope, int count,                                   RegExpImpl reImpl)    {        if (mdata.arrayobj == null) {            Scriptable s = ScriptableObject.getTopLevelScope(scope);            mdata.arrayobj = ScriptRuntime.newObject(cx, s, "Array", null);        }        SubString matchsub = reImpl.lastMatch;        String matchstr = matchsub.toString();        mdata.arrayobj.put(count, mdata.arrayobj, matchstr);    }    /*     * Analog of replace_glob() in jsstr.c     */    private static void replace_glob(GlobData rdata, Context cx,                                     Scriptable scope, RegExpImpl reImpl,                                     int leftIndex, int leftlen)    {        int replen;        String lambdaStr;        if (rdata.lambda != null) {            // invoke lambda function with args lastMatch, $1, $2, ... $n,            // leftContext.length, whole string.            SubString[] parens = reImpl.parens;            int parenCount = (parens == null) ? 0 : parens.length;            Object[] args = new Object[parenCount + 3];            args[0] = reImpl.lastMatch.toString();            for (int i=0; i < parenCount; i++) {                SubString sub = parens[i];                if (sub != null) {                    args[i+1] = sub.toString();                } else {                    args[i+1] = Undefined.instance;                }            }            args[parenCount+1] = new Integer(reImpl.leftContext.length);            args[parenCount+2] = rdata.str;            // This is a hack to prevent expose of reImpl data to            // JS function which can run new regexps modifing            // regexp that are used later by the engine.            // TODO: redesign is necessary            if (reImpl != ScriptRuntime.getRegExpProxy(cx)) Kit.codeBug();            RegExpImpl re2 = new RegExpImpl();            re2.multiline = reImpl.multiline;            re2.input = reImpl.input;            ScriptRuntime.setRegExpProxy(cx, re2);            try {                Scriptable parent = ScriptableObject.getTopLevelScope(scope);                Object result = rdata.lambda.call(cx, parent, parent, args);                lambdaStr = ScriptRuntime.toString(result);            } finally {                ScriptRuntime.setRegExpProxy(cx, reImpl);            }            replen = lambdaStr.length();        } else {            lambdaStr = null;            replen = rdata.repstr.length();            if (rdata.dollar >= 0) {                int[] skip = new int[1];                int dp = rdata.dollar;                do {                    SubString sub = interpretDollar(cx, reImpl, rdata.repstr,                                                    dp, skip);                    if (sub != null) {                        replen += sub.length - skip[0];                        dp += skip[0];                    } else {                        ++dp;                    }                    dp = rdata.repstr.indexOf('$', dp);                } while (dp >= 0);            }        }        int growth = leftlen + replen + reImpl.rightContext.length;        StringBuffer charBuf = rdata.charBuf;        if (charBuf == null) {            charBuf = new StringBuffer(growth);            rdata.charBuf = charBuf;        } else {            charBuf.ensureCapacity(rdata.charBuf.length() + growth);        }        charBuf.append(reImpl.leftContext.charArray, leftIndex, leftlen);        if (rdata.lambda != null) {            charBuf.append(lambdaStr);        } else {            do_replace(rdata, cx, reImpl);        }    }    private static SubString interpretDollar(Context cx, RegExpImpl res,                                             String da, int dp, int[] skip)    {        char dc;        int num, tmp;        if (da.charAt(dp) != '$') Kit.codeBug();        /* Allow a real backslash (literal "\\") to escape "$1" etc. */        int version = cx.getLanguageVersion();        if (version != Context.VERSION_DEFAULT            && version <= Context.VERSION_1_4)        {            if (dp > 0 && da.charAt(dp - 1) == '\\')                return null;        }        int daL = da.length();        if (dp + 1 >= daL)            return null;        /* Interpret all Perl match-induced dollar variables. */        dc = da.charAt(dp + 1);        if (NativeRegExp.isDigit(dc)) {            int cp;            if (version != Context.VERSION_DEFAULT                && version <= Context.VERSION_1_4)            {                if (dc == '0')                    return null;                /* Check for overflow to avoid gobbling arbitrary decimal digits. */                num = 0;                cp = dp;                while (++cp < daL && NativeRegExp.isDigit(dc = da.charAt(cp)))                {                    tmp = 10 * num + (dc - '0');                    if (tmp < num)                        break;                    num = tmp;                }            }            else {  /* ECMA 3, 1-9 or 01-99 */                int parenCount = (res.parens == null) ? 0 : res.parens.length;                num = dc - '0';                if (num > parenCount)                    return null;                cp = dp + 2;                if ((dp + 2) < daL) {                    dc = da.charAt(dp + 2);                    if (NativeRegExp.isDigit(dc)) {                        tmp = 10 * num + (dc - '0');                        if (tmp <= parenCount) {                            cp++;                            num = tmp;                        }                    }                }                if (num == 0) return null;  /* $0 or $00 is not valid */            }            /* Adjust num from 1 $n-origin to 0 array-index-origin. */            num--;            skip[0] = cp - dp;            return res.getParenSubString(num);        }        skip[0] = 2;        switch (dc) {          case '$':            return new SubString("$");          case '&':            return res.lastMatch;          case '+':            return res.lastParen;          case '`':            if (version == Context.VERSION_1_2) {                /*                 * JS1.2 imitated the Perl4 bug where left context at each step                 * in an iterative use of a global regexp started from last match,                 * not from the start of the target string.  But Perl4 does start                 * $` at the beginning of the target string when it is used in a                 * substitution, so we emulate that special case here.                 */                res.leftContext.index = 0;                res.leftContext.length = res.lastMatch.index;            }            return res.leftContext;          case '\'':            return res.rightContext;        }        return null;    }    /**     * Analog of do_replace in jsstr.c     */    private static void do_replace(GlobData rdata, Context cx,                                   RegExpImpl regExpImpl)    {        StringBuffer charBuf = rdata.charBuf;        int cp = 0;        String da = rdata.repstr;        int dp = rdata.dollar;        if (dp != -1) {            int[] skip = new int[1];            do {                int len = dp - cp;                charBuf.append(da.substring(cp, dp));                cp = dp;                SubString sub = interpretDollar(cx, regExpImpl, da,                                                dp, skip);                if (sub != null) {                    len = sub.length;                    if (len > 0) {                        charBuf.append(sub.charArray, sub.index, len);                    }                    cp += skip[0];                    dp += skip[0];                } else {                    ++dp;                }                dp = da.indexOf('$', dp);            } while (dp >= 0);        }        int daL = da.length();        if (daL > cp) {            charBuf.append(da.substring(cp, daL));        }    }    String          input;         /* input string to match (perl $_, GC root) */    boolean         multiline;     /* whether input contains newlines (perl $*) */    SubString[]     parens;        /* Vector of SubString; last set of parens                                      matched (perl $1, $2) */    SubString       lastMatch;     /* last string matched (perl $&) */    SubString       lastParen;     /* last paren matched (perl $+) */    SubString       leftContext;   /* input to left of last match (perl $`) */    SubString       rightContext;  /* input to right of last match (perl $') */}final class GlobData{    int      mode;      /* input: return index, match object, or void */    int      optarg;    /* input: index of optional flags argument */    boolean  global;    /* output: whether regexp was global */    String   str;       /* output: 'this' parameter object as string */    NativeRegExp regexp;/* output: regexp parameter object private data */    // match-specific data    Scriptable arrayobj;    // replace-specific data    Function      lambda;        /* replacement function object or null */    String        repstr;        /* replacement string */    int           dollar = -1;   /* -1 or index of first $ in repstr */    StringBuffer  charBuf;       /* result characters, null initially */    int           leftIndex;     /* leftContext index, always 0 for JS1.2 */}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一二三| 中文天堂在线一区| 欧美午夜寂寞影院| 一本久久a久久免费精品不卡| 国产成人免费av在线| 国产乱码精品1区2区3区| 国产一区在线看| 粉嫩av一区二区三区| 99久久久免费精品国产一区二区 | 日韩综合一区二区| 一区二区日韩电影| 蜜臀av性久久久久蜜臀av麻豆| 久久aⅴ国产欧美74aaa| 成人激情黄色小说| 欧美性极品少妇| 亚洲国产精品激情在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲在线中文字幕| 久久99精品国产91久久来源| 99久久精品免费| 欧美一二三四区在线| 亚洲欧洲国产专区| 欧美96一区二区免费视频| 成人免费视频视频| 日韩精品一区二区三区在线观看| 国产日本欧美一区二区| 亚洲国产日韩a在线播放性色| 国产精品夜夜嗨| 制服丝袜av成人在线看| 国产精品免费人成网站| 丝袜脚交一区二区| 在线视频欧美区| 亚洲视频1区2区| 在线免费观看日本一区| ...中文天堂在线一区| 国产激情一区二区三区| 久久久精品人体av艺术| 国产高清精品久久久久| 亚洲国产精品成人综合 | 91精品婷婷国产综合久久竹菊| 自拍偷拍欧美精品| 欧美日韩在线综合| 日本中文一区二区三区| 日韩午夜精品视频| 精品一区二区三区的国产在线播放| 欧美日韩一卡二卡三卡| 免费成人性网站| 日韩欧美综合一区| 欧美一级片在线| 日本 国产 欧美色综合| 日韩亚洲欧美综合| kk眼镜猥琐国模调教系列一区二区 | 成人国产精品视频| 亚洲美女免费视频| 日韩精品专区在线| av网站免费线看精品| 性欧美大战久久久久久久久| 6080亚洲精品一区二区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 欧美在线制服丝袜| 国产一区二区三区电影在线观看| 免费观看久久久4p| 国产精品乱码一区二三区小蝌蚪| 国内精品久久久久影院薰衣草 | 欧美成人女星排名| 亚洲免费观看视频| 久久伊99综合婷婷久久伊| 久久精品日产第一区二区三区高清版 | 欧美一区二区视频在线观看 | 久久久高清一区二区三区| 亚洲激情自拍视频| 色综合亚洲欧洲| 亚洲精品福利视频网站| 欧美一区二区免费观在线| 亚洲午夜免费电影| 国产精品高潮久久久久无| 粗大黑人巨茎大战欧美成人| 中文字幕av一区二区三区高| 国产.精品.日韩.另类.中文.在线.播放| 51精品秘密在线观看| 国产丶欧美丶日本不卡视频| 一区二区三区四区高清精品免费观看| 91精品国产综合久久精品| 一本久久精品一区二区| 国产一区二区三区av电影| 一区二区三区**美女毛片| 国产女主播在线一区二区| 久久久久久久久免费| 国产精品丝袜91| 久久这里都是精品| ww久久中文字幕| 国产日产欧美精品一区二区三区| 久久久夜色精品亚洲| 国产精品欧美极品| 午夜视频在线观看一区二区三区| 日本欧美韩国一区三区| 日韩高清一级片| 国产真实乱对白精彩久久| 91欧美激情一区二区三区成人| 不卡一卡二卡三乱码免费网站| 91免费看视频| 欧美一区二区三区视频免费播放| 91精品国产高清一区二区三区 | 亚洲自拍偷拍九九九| 亚洲中国最大av网站| 国产一区二区调教| 一本大道久久精品懂色aⅴ| 欧美一区二区在线观看| 国产精品视频线看| 久久99久久精品欧美| 色综合久久久久综合体桃花网| 欧美一区二区精美| 亚洲免费在线观看视频| 国产激情视频一区二区三区欧美| 在线亚洲欧美专区二区| 国产亚洲美州欧州综合国| 亚洲成人动漫在线免费观看| 99热99精品| 中文字幕二三区不卡| 国产一区二区三区香蕉| 日韩一区二区三区在线| 午夜av区久久| 欧美日韩日日摸| 亚洲欧美区自拍先锋| www.成人网.com| 国产精品不卡在线观看| 成人中文字幕在线| 中国色在线观看另类| 国产999精品久久| 中文字幕在线不卡一区二区三区| 国产在线播精品第三| 国产日韩精品久久久| 丁香婷婷综合网| 亚洲特级片在线| 在线观看中文字幕不卡| 午夜视频在线观看一区| 欧美一区二区视频网站| 日本成人在线网站| 久久久蜜桃精品| 99国产精品视频免费观看| 亚洲国产精品久久人人爱| 欧美精品一二三| 国产成人午夜精品影院观看视频| 久久欧美一区二区| 91亚洲男人天堂| 美女视频一区在线观看| 911精品国产一区二区在线| 日本怡春院一区二区| 国产视频一区二区在线观看| av在线综合网| 国产在线精品不卡| 亚洲一区二区三区四区在线观看 | 五月天网站亚洲| 国产午夜亚洲精品午夜鲁丝片| 色综合天天做天天爱| 激情另类小说区图片区视频区| 1区2区3区国产精品| 日韩欧美在线影院| 欧美日韩一区二区三区四区五区 | 亚洲四区在线观看| 国产日韩欧美高清在线| 日韩欧美专区在线| 久久久久久久久99精品| 日韩一级在线观看| 欧美日韩久久久久久| 99国产精品视频免费观看| 国产成人av资源| 丰满亚洲少妇av| 国产激情视频一区二区在线观看| 免费成人在线网站| 青青草原综合久久大伊人精品| 午夜精品久久久久久久久| 亚洲一区二区3| 美国十次综合导航| 激情综合网最新| 成人av资源站| 在线观看欧美黄色| 欧美人狂配大交3d怪物一区| 欧美日韩亚洲综合在线 | 激情亚洲综合在线| 成人综合婷婷国产精品久久免费| 成人一区二区三区视频| 91麻豆精品在线观看| 日本韩国精品在线| 精品美女被调教视频大全网站| 久久久久久**毛片大全| 国产精品剧情在线亚洲| 亚洲成人激情综合网| 美女在线视频一区| 91在线观看一区二区| 91成人在线免费观看| 日韩一区二区三区视频在线观看| 欧美精品一区二区三区四区 | 99久久国产综合色|国产精品| 在线观看91精品国产入口| 精品福利二区三区| 亚洲国产精品自拍| 99久久婷婷国产| www国产成人| 日韩中文字幕一区二区三区|