<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢幻之旅

    DEBUG - 天道酬勤

       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks

    使用小括號指定一個子表達式后,匹配這個子表達式的文本(也就是此分組捕獲的內容)可以在表達式或其它程序中作進一步的處理。默認情況下,每個分組會自動擁有一個組號,規則是:從左向右,以分組的左括號為標志,第一個出現的分組的組號為1,第二個為2,以此類推。

    呃……其實,組號分配還不像我剛說得那么簡單:

    • 分組0對應整個正則表達式
    • 實際上組號分配過程是要從左向右掃描兩遍的:第一遍只給未命名組分配,第二遍只給命名組分配--因此所有命名組的組號都大于未命名的組號
    • 你可以使用(?:exp)這樣的語法來剝奪一個分組對組號分配的參與權.

    后向引用用于重復搜索前面某個分組匹配的文本。例如,\1代表分組1匹配的文本。難以理解?請看示例:

    \b(\w+)\b\s+\1\b可以用來匹配重復的單詞,像go go, 或者kitty kitty。這個表達式首先是一個單詞,也就是單詞開始處和結束處之間的多于一個的字母或數字(\b(\w+)\b),這個單詞會被捕獲到編號為1的分組中,然后是1個或幾個空白符(\s+),最后是分組1中捕獲的內容(也就是前面匹配的那個單詞)(\1)。

    你也可以自己指定子表達式的組名。要指定一個子表達式的組名,請使用這樣的語法:(?<Word>\w+)(或者把尖括號換成'也行:(?'Word'\w+)),這樣就把\w+的組名指定為Word了。要反向引用這個分組捕獲的內容,你可以使用\k<Word>,所以上一個例子也可以寫成這樣:\b(?<Word>\w+)\b\s+\k<Word>\b。

    使用小括號的時候,還有很多特定用途的語法。下面列出了最常用的一些:

    表4.常用分組語法
    分類 代碼/語法 說明
    捕獲 (exp) 匹配exp,并捕獲文本到自動命名的組里
    (?<name>exp) 匹配exp,并捕獲文本到名稱為name的組里,也可以寫成(?'name'exp)
    (?:exp) 匹配exp,不捕獲匹配的文本,也不給此分組分配組號
    零寬斷言 (?=exp) 匹配exp前面的位置
    (?<=exp) 匹配exp后面的位置
    (?!exp) 匹配后面跟的不是exp的位置
    (?<!exp) 匹配前面不是exp的位置
    注釋 (?#comment) 這種類型的分組不對正則表達式的處理產生任何影響,用于提供注釋讓人閱讀

    我們已經討論了前兩種語法。第三個(?:exp)不會改變正則表達式的處理方式,只是這樣的組匹配的內容不會像前兩種那樣被捕獲到某個組里面,也不會擁有組號。“我為什么會想要這樣做?”——好問題,你覺得為什么呢?

    posted on 2011-11-18 15:19 HUIKK 閱讀(359) 評論(0)  編輯  收藏 所屬分類: JavaScript
    主站蜘蛛池模板: 亚洲人成影院在线观看| 久久久久国产精品免费免费搜索| 男男gay做爽爽的视频免费| 亚洲砖码砖专无区2023 | 亚洲精品无码日韩国产不卡?V| 在线a级毛片免费视频| 女性无套免费网站在线看| 九九九精品成人免费视频| 成全影视免费观看大全二| 成人免费无毒在线观看网站| 国产免费观看黄AV片| 亚洲?v女人的天堂在线观看| 亚洲七七久久精品中文国产| 亚洲国产精品高清久久久| 亚洲综合久久成人69| 亚洲欧洲精品一区二区三区| 亚洲视频免费观看| 亚洲一区二区三区久久| 免费看一级高潮毛片| 在线看无码的免费网站| 国产免费人成在线视频| 亚洲av之男人的天堂网站| 国产成+人+综合+亚洲专| 免费人人潮人人爽一区二区| 三年片在线观看免费观看大全动漫| www.黄色免费网站| 亚洲精品国精品久久99热一| 亚洲成a人片在线不卡| 精品国产免费一区二区三区香蕉 | 日本在线免费观看| 亚洲午夜激情视频| 亚洲精品无码av片| 麻豆一区二区免费播放网站| 亚洲av午夜成人片精品网站| 亚洲欧美日韩综合俺去了| 真实国产乱子伦精品免费| 国产成人综合亚洲亚洲国产第一页 | 四虎成人免费网站在线| www.亚洲成在线| 亚洲人成免费电影| 亚洲欧洲国产精品久久|