氟塑料離心泵www.buybeng.com

          jquery教程http://www.software8.co/wzjs/jquery/

          關于 Java正則表達式中的Possessive數量修飾詞的理解

          正則表達式對于數量限定符如 ?, + , *, {n, m} 的匹配默認是貪婪模式,比如:
          a.*b   匹配 acbab 的結果是 acbab 而不是acb
          正則表達式支持懶惰模式,也就是在數量限定符后加一個數量修飾詞(quantifier),用問號表示, 比如:
          a.*?b 匹配 acbab 的結果是 acb 而不是acbab
           
          而Java語言在正則表達式中支持一種Possessive 數量修飾詞 ,用加號表示。其字面意思是像貪婪模式一樣匹配,但不回溯。這到底是什么意思呢?其實這和匹配算法相關,比如:
          在貪婪模式下,正則表達式 a.*b 在匹配 acbac時,在匹配成功第一個字符a后,匹配算法會繼續往后讀取字符a之后的字符來匹配.* , 這時貪婪模式就起作用了,a后面的cbac都能匹配.*,但當匹配算法繼續往后讀取字符時,發現已經沒有字符可讀了,無法匹配正則表達式中的b了,于是就回溯一個字符,看c是否能匹配b,不能,繼續回溯,直到回溯到b時,才匹配到了acb。 而a.*+b在匹配時是不會回溯的,也就是說當貪婪地讀到最后一個字符時發現無有字符與b匹配了,就認為匹配失敗了。
           
          再舉幾個例子
          (ab)*+a 匹配 ababacd 時 可以匹配到 ababa , 因為兩個ab之后沒有ab了,無法貪婪
          a?+a 匹配aaaaa 時會匹配到 aa ,但 a++a和a{0, 10}+a卻會匹配失敗
          原文鏈接:http://www.software8.co/wzjs/java/3099.html

          posted on 2013-02-27 17:26 你爸是李剛 閱讀(1533) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2013年2月>
          272829303112
          3456789
          10111213141516
          17181920212223
          242526272812
          3456789

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術網站

          行業網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 南郑县| 吴旗县| 恭城| 汽车| 克拉玛依市| 鄂伦春自治旗| 东台市| 盐池县| 密山市| 香格里拉县| 贵德县| 三都| 读书| 石河子市| 邵阳市| 大邑县| 洱源县| 博罗县| 通城县| 宝山区| 工布江达县| 白水县| 马鞍山市| 集贤县| 汉中市| 龙岩市| 肥乡县| 县级市| 湛江市| 保定市| 随州市| 德令哈市| 竹溪县| 马公市| 鄱阳县| 公安县| 若尔盖县| 广河县| 五大连池市| 宜川县| 旺苍县|