青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會(huì)很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::

import java.util.regex.Matcher;

import java.util.regex.Pattern;


public class Test {

public static void main(String[] args) {

String str = "<biao><>c<b>";

Pattern pattern;

Matcher matcher;

// 貪婪: 最長(zhǎng)匹配 .* : 輸出: <biao><>c<b>

pattern = Pattern.compile("<.*>");

matcher = pattern.matcher(str);

while (matcher.find()) {

System.out.println(matcher.group());

}

// 不知是否非貪婪 .*? : 輸出: <biao>, <>, <b>

pattern = Pattern.compile("<.*?>");

matcher = pattern.matcher(str);

while (matcher.find()) {

System.out.println(matcher.group());

}

// 使用組, 輸出<>里的內(nèi)容, 輸出: 'biao', ' ', 'b'

// 0組代表整個(gè)表達(dá)式, 子組從1開(kāi)始

pattern = Pattern.compile("<(.*?)>");

matcher = pattern.matcher(str);

while (matcher.find()) {

System.out.println(matcher.group(1));

}

}

}

貪婪、勉強(qiáng)和侵占量詞間的不同
  在貪婪、勉強(qiáng)和侵占三個(gè)量詞間有著細(xì)微的不同。

  貪婪(*, ?, +):讀入整個(gè)串,從后往前匹配

  勉強(qiáng)(*?, ??, +?):從前往后匹配

  侵占(*+, ?+, ++):讀入整個(gè)串,從前往后匹配,匹配的是整個(gè)串
  貪婪量詞之所以稱之為“貪婪的”,這是由于它們強(qiáng)迫匹配器讀入(或者稱之為吃掉)整個(gè)輸入的字符串,來(lái)優(yōu)先嘗試第一次匹配,如果第一次嘗試匹配(對(duì)于整個(gè)輸入的字符串)失敗,匹配器會(huì)通過(guò)回退整個(gè)字符串的一個(gè)字符再一次進(jìn)行嘗試,不斷地進(jìn)行處理直到找到一個(gè)匹配,或者左邊沒(méi)有更多的字符來(lái)用于回退了。賴于在表達(dá)式中使用的量詞,最終它將嘗試地靠著 1 或 0 個(gè)字符的匹配。
  但是,勉強(qiáng)量詞采用相反的途徑:從輸入字符串的開(kāi)始處開(kāi)始,因此每次勉強(qiáng)地吞噬一個(gè)字符來(lái)尋找匹配,最終它們會(huì)嘗試整個(gè)輸入的字符串。
  最后,侵占量詞始終是吞掉整個(gè)輸入的字符串,嘗試著一次(僅有一次)匹配。不像貪婪量詞那樣,侵占量詞絕不會(huì)回退,即使這樣做是允許全部的匹配成功。
  為了說(shuō)明一下,看看輸入的字符串是 xfooxxxxxxfoo 時(shí)。

Enter your regex: .*foo  // 貪婪量詞
Enter input string to search: xfooxxxxxxfoo
I found the text "xfooxxxxxxfoo" starting at index 0 and ending at index 13.

Enter your regex: .*?foo  // 勉強(qiáng)量詞
Enter input string to search: xfooxxxxxxfoo
I found the text "xfoo" starting at index 0 and ending at index 4.
I found the text "xxxxxxfoo" starting at index 4 and ending at index 13.

Enter your regex: .*+foo // 侵占量詞
Enter input string to search: xfooxxxxxxfoo
No match found.
  第一個(gè)例子使用貪婪量詞.*,尋找緊跟著字母“f”“o”“o”的“任何東西”零次或者多次。由于量詞是貪婪的,表達(dá)式的.*部分第一次“吃掉”整個(gè)輸入的字符串。在這一點(diǎn),全部表達(dá)式不能成功地進(jìn)行匹配,這是由于最后三個(gè)字母(“f”“o”“o”)已經(jīng)被消耗掉了。那么匹配器會(huì)慢慢地每次回退一個(gè)字母,直到返還的“foo”在最右邊出現(xiàn),這時(shí)匹配成功并且搜索終止。
  然而,第二個(gè)例子采用勉強(qiáng)量詞,因此通過(guò)首次消耗“什么也沒(méi)有”作為開(kāi)始。由于“foo”并沒(méi)有出現(xiàn)在字符串的開(kāi)始,它被強(qiáng)迫吞掉第一個(gè)字母(“x”),在 0 和 4 處觸發(fā)了第一個(gè)匹配。測(cè)試用具會(huì)繼續(xù)處理,直到輸入的字符串耗盡為止。在 4 和 13 找到了另外一個(gè)匹配。
  第三個(gè)例子的量詞是侵占,所以在尋找匹配時(shí)失敗了。在這種情況下,整個(gè)輸入的字符串被.*+消耗了,什么都沒(méi)有剩下來(lái)滿足表達(dá)式末尾的“foo”。
  你可以在想抓取所有的東西,且決不回退的情況下使用侵占量詞,在這種匹配不是立即被發(fā)現(xiàn)的情況下,它將會(huì)優(yōu)于等價(jià)的貪婪量詞。

posted on 2010-02-05 20:19 逛奔的蝸牛 閱讀(4578) 評(píng)論(1)  編輯 收藏 引用 所屬分類: Java

評(píng)論

# re: Java:正則匹配的不同情況(貪婪,勉強(qiáng)): greedy, reluctant, possesive 2011-08-03 10:33 張葦
寫的很生動(dòng)  回復(fù)  更多評(píng)論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            老司机免费视频一区二区三区| 亚洲性感美女99在线| 欧美激情精品| 欧美日本一区二区高清播放视频| 久久在线观看视频| 欧美mv日韩mv国产网站| 欧美乱妇高清无乱码| 国产精品成人一区二区| 国产精品色在线| 国内自拍一区| 亚洲欧洲日本mm| 在线视频亚洲欧美| 午夜亚洲精品| 免费久久99精品国产自在现线| 母乳一区在线观看| 日韩亚洲欧美中文三级| 亚洲欧美日韩精品久久亚洲区 | 欧美激情偷拍| 亚洲最新中文字幕| 久久国产66| 欧美丝袜一区二区| 在线看日韩av| 亚洲综合色婷婷| 91久久国产综合久久91精品网站 | 欧美高清视频免费观看| 日韩视频精品在线| 久久爱www| 欧美视频精品一区| 亚洲福利视频免费观看| 亚洲综合色网站| 亚洲成人在线免费| 黄色一区二区三区四区| 一区二区三区日韩精品| 久久三级视频| 亚洲一二三四久久| 欧美成人四级电影| 国模私拍一区二区三区| 亚洲一二三区精品| 亚洲高清视频一区| 久久久久中文| 国产午夜一区二区三区| 一本久道久久综合狠狠爱| 久久一区二区三区四区| 亚洲欧美另类中文字幕| 欧美偷拍一区二区| 99视频一区二区三区| 欧美激情一区二区三区高清视频| 久久国产66| 国产偷国产偷亚洲高清97cao| 在线视频你懂得一区二区三区| 欧美激情aⅴ一区二区三区| 久久精品中文字幕一区| 国一区二区在线观看| 欧美一区二区三区免费观看视频| 99国产精品久久久久久久成人热 | 欧美精品成人| 亚洲精品在线免费观看视频| 欧美电影资源| 美女国内精品自产拍在线播放| 在线精品观看| 欧美国产综合| 欧美精品在线看| 亚洲香蕉网站| 午夜精品久久久久影视| 国产三区二区一区久久 | 在线亚洲免费| 国产精品久久久久久五月尺| 亚洲在线不卡| 欧美一级视频精品观看| 狠狠综合久久av一区二区老牛| 久久久久成人精品| 久久午夜国产精品| 91久久午夜| av成人手机在线| 亚洲成人资源| 欧美电影免费观看| 欧美女同在线视频| 亚洲综合成人婷婷小说| 亚洲一区二区欧美| 国产一区二区精品| 欧美成人午夜视频| 欧美日韩精品免费观看视频完整| 亚洲一区二区成人| 欧美一区亚洲二区| 亚洲国产高清一区| 一本一本a久久| 狠狠干综合网| 日韩视频精品在线| 国产偷自视频区视频一区二区| 欧美成人午夜剧场免费观看| 欧美性猛交一区二区三区精品| 欧美在线一二三区| 欧美国产极速在线| 欧美影片第一页| 欧美激情一区二区| 久久丁香综合五月国产三级网站| 欧美69wwwcom| 久久精品国产亚洲aⅴ| 欧美国产欧美亚洲国产日韩mv天天看完整 | 久久av在线看| 一本久久综合亚洲鲁鲁五月天| 亚洲尤物视频网| 91久久国产综合久久蜜月精品 | 欧美精品v国产精品v日韩精品 | 久久亚洲综合| 欧美视频二区36p| 欧美国产大片| 国产亚洲欧洲| 亚洲天堂网在线观看| 91久久精品网| 久久久999精品视频| 亚洲欧美偷拍卡通变态| 欧美福利一区二区| 欧美va天堂va视频va在线| 国产乱码精品一区二区三区五月婷| 欧美成人精品福利| 国产主播一区二区三区四区| 亚洲视频一区二区在线观看| 亚洲精品午夜精品| 蜜桃av一区| 精品va天堂亚洲国产| 性做久久久久久免费观看欧美| 欧美h视频在线| 久久只精品国产| 国产综合在线视频| 午夜性色一区二区三区免费视频| 亚洲精品视频一区二区三区| 久久香蕉国产线看观看网| 久久国产精品黑丝| 国产精品一区二区久久精品| 亚洲麻豆av| 一区二区三区精品视频| 欧美国产日韩一二三区| 欧美 日韩 国产一区二区在线视频| 国产精品一页| 亚洲欧美清纯在线制服| 欧美亚洲视频在线观看| 国产精品久久久久永久免费观看 | 久久综合色播五月| 快射av在线播放一区| 狠狠久久亚洲欧美专区| 欧美在线免费一级片| 久久久五月天| 在线精品国产欧美| 老司机免费视频久久| 亚洲国产精品va| 亚洲毛片在线| 欧美日韩免费一区二区三区视频| 亚洲精选一区| 性感少妇一区| 激情懂色av一区av二区av| 久久婷婷影院| 亚洲精品一区二区三区在线观看 | 亚洲电影观看| 欧美日韩高清区| 亚洲欧美日韩中文视频| 久久亚洲春色中文字幕| 亚洲国产日日夜夜| 欧美喷潮久久久xxxxx| 亚洲视频久久| 久久伊人一区二区| av成人黄色| 国产一区二区高清不卡| 欧美高清视频免费观看| 亚洲视频综合在线| 裸体歌舞表演一区二区| 99re热精品| 国产亚洲福利一区| 欧美精品久久天天躁| 亚洲欧美日韩国产一区二区三区| 免费看黄裸体一级大秀欧美| 一区二区三区视频在线| 国产综合婷婷| 欧美日韩免费观看中文| 久久久7777| 亚洲丝袜av一区| 欧美成人午夜视频| 性欧美xxxx大乳国产app| 亚洲人www| 国产一级揄自揄精品视频| 欧美理论在线| 久久九九热免费视频| 亚洲自拍偷拍网址| 亚洲精品一区中文| 欧美成人一品| 欧美影院成人| 亚洲主播在线观看| 日韩午夜激情电影| 亚洲国产精品一区在线观看不卡| 国产九色精品成人porny| 欧美激情按摩| 亚洲精品在线免费观看视频| 宅男66日本亚洲欧美视频| 久久激情网站| 欧美涩涩网站| 亚洲精品中文字幕在线| 欧美在线观看视频在线 | 99精品视频免费观看视频| 一区二区三区视频观看| 久热re这里精品视频在线6|