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

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

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

    關(guān)于正則表達(dá)式

    *匹配除了換行之外的所有字符

    合法IP的正則表達(dá)式 ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)

    \s匹配任意的空白符、(空格、制表符、換行符、中文全角空格)
    \w匹配字母或數(shù)字或下劃線或漢字

    表1.常用的元字符
    代碼說明
    .匹配除換行符以外的任意字符
    \w匹配字母或數(shù)字或下劃線或漢字
    \s匹配任意的空白符
    \d匹配數(shù)字
    \b匹配單詞的開始或結(jié)束
    ^匹配字符串的開始
    $匹配字符串的結(jié)束


    表2.常用的限定符
    代碼/語法說明
    *重復(fù)零次或更多次
    +重復(fù)一次或更多次
    ?重復(fù)零次或一次
    {n}重復(fù)n次
    {n,}重復(fù)n次或更多次
    {n,m}重復(fù)n到m次


    后向引用

    使用小括號(hào)指定一個(gè)子表達(dá)式后,匹配這個(gè)子表達(dá)式的文本(也就是此分組捕獲的內(nèi)容)可以在表達(dá)式或其它程序中作進(jìn)一步的處理。默認(rèn)情況下,每個(gè)分組會(huì)自動(dòng)擁有一個(gè)組號(hào),規(guī)則是:從左向右,以分組的左括號(hào)為標(biāo)志,第一個(gè)出現(xiàn)的分組的組號(hào)為1,第二個(gè)為2,以此類推。

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

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

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

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

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


    表5.懶惰限定符
    代碼/語法說明
    *?重復(fù)任意次,但盡可能少重復(fù)
    +?重復(fù)1次或更多次,但盡可能少重復(fù)
    ??重復(fù)0次或1次,但盡可能少重復(fù)
    {n,m}?重復(fù)n到m次,但盡可能少重復(fù)
    {n,}?重復(fù)n次以上,但盡可能少重復(fù)


    表6.常用的處理選項(xiàng)
    名稱說明
    IgnoreCase(忽略大小寫)匹配時(shí)不區(qū)分大小寫。
    Multiline(多行模式)更改^$的含義,使它們分別在任意一行的行首和行尾匹配,而不僅僅在整個(gè)字符串的開頭和結(jié)尾匹配。(在此模式下,$的精確含意是:匹配\n之前的位置以及字符串結(jié)束前的位置.)
    Singleline(單行模式)更改.的含義,使它與每一個(gè)字符匹配(包括換行符\n)。
    IgnorePatternWhitespace(忽略空白)忽略表達(dá)式中的非轉(zhuǎn)義空白并啟用由#標(biāo)記的注釋。
    RightToLeft(從右向左查找)匹配從右向左而不是從左向右進(jìn)行。
    ExplicitCapture(顯式捕獲)僅捕獲已被顯式命名的組。
    ECMAScript(JavaScript兼容模式)使表達(dá)式的行為與它在JavaScript里的行為一致。
    表7.尚未詳細(xì)討論的語法
    代碼/語法說明
    \a報(bào)警字符(打印它的效果是電腦嘀一聲)
    \b通常是單詞分界位置,但如果在字符類里使用代表退格
    \t制表符,Tab
    \r回車
    \v豎向制表符
    \f換頁(yè)符
    \n換行符
    \eEscape
    \0nnASCII代碼中八進(jìn)制代碼為nn的字符
    \xnnASCII代碼中十六進(jìn)制代碼為nn的字符
    \unnnnUnicode代碼中十六進(jìn)制代碼為nnnn的字符
    \cNASCII控制字符。比如\cC代表Ctrl+C
    \A字符串開頭(類似^,但不受處理多行選項(xiàng)的影響)
    \Z字符串結(jié)尾或行尾(不受處理多行選項(xiàng)的影響)
    \z字符串結(jié)尾(類似$,但不受處理多行選項(xiàng)的影響)
    \G當(dāng)前搜索的開頭
    \p{name}Unicode中命名為name的字符類,例如\p{IsGreek}
    (?>exp)貪婪子表達(dá)式
    (?<x>-<y>exp)平衡組
    (?im-nsx:exp)在子表達(dá)式exp中改變處理選項(xiàng)
    (?im-nsx)為表達(dá)式后面的部分改變處理選項(xiàng)
    (?(exp)yes|no)把exp當(dāng)作零寬正向先行斷言,如果在這個(gè)位置能匹配,使用yes作為此組的表達(dá)式;否則使用no
    (?(exp)yes)同上,只是使用空表達(dá)式作為no
    (?(name)yes|no)如果命名為name的組捕獲到了內(nèi)容,使用yes作為表達(dá)式;否則使用no
    (?(name)yes)同上,只是使用空表達(dá)式作為no

    posted on 2008-10-17 11:10 金家寶 閱讀(333) 評(píng)論(1)  編輯  收藏

    評(píng)論

    # re: 關(guān)于正則表達(dá)式 2008-10-17 17:49 Jiabao

    請(qǐng)教一個(gè)正則:我想在字符串:abc123abcdefabc1234defabc123def中找出
    以abc開始def結(jié)尾且包含123又不包含4及abc的字符串  回復(fù)  更多評(píng)論   


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: APP在线免费观看视频| 亚洲制服丝袜在线播放| 亚洲乱亚洲乱妇无码| 最近高清中文字幕免费| 亚洲精品免费视频| 桃子视频在线观看高清免费视频| 亚洲一级黄色视频| 久久国产精品免费一区| 亚洲国产成人一区二区精品区| 精品国产污污免费网站入口| 黑人大战亚洲人精品一区| 国产成人高清精品免费观看| 久久影视国产亚洲| 成全在线观看免费观看大全| 亚洲AV无码国产精品色午友在线| 久久青草国产免费观看| 亚洲欧洲日产国码二区首页| 国产一卡二卡3卡四卡免费| 亚洲av无码兔费综合| 亚洲高清国产拍精品青青草原| 成熟女人特级毛片www免费| 亚洲成色在线综合网站| 99视频免费观看| 激情综合亚洲色婷婷五月APP| 成人免费毛片观看| 免费很黄无遮挡的视频毛片| 在线亚洲精品自拍| 久久国产精品成人片免费| 亚洲国产综合精品中文第一| 免费国产成人高清视频网站| 乱淫片免费影院观看| 亚洲一区中文字幕久久| 成人毛片18女人毛片免费96| 性生大片视频免费观看一级 | 成人免费ā片在线观看| 亚洲精品成人av在线| 毛片a级毛片免费播放下载| 日本一区二区三区在线视频观看免费| 欧洲亚洲国产清在高| 特级做A爰片毛片免费69| 一个人看的www视频免费在线观看|