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

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

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

    摘自: http://blog.csdn.net/zbzgigi/archive/2006/05/30/763795.aspx

    1、“.”為通配符,表示任何一個字符,例如:“a.c”可以匹配“anc”、“abc”、“acc”;
    2、“[]”,在[]內可以指定要求匹配的字符,例如:“a[nbc]c”可以匹配“anc”、“abc”、“acc”;但不可以匹配“ancc”,a到z可以寫成[a-z],0到9可以寫成[0-9];

    3、數量限定符號,表示匹配次數(或者叫做長度)的符號:

    包括:“*”——0次或者多次
    ????? “+”——1次或者多次
    ????? “?”——0次或者1次
    ????? “{n}”——匹配n次,n為整數
    ????? “{n,m}”——匹配從n到m之間的某個數的次數;n和m都是整數;
    ????? “{n,}”——匹配n到無窮次之間任意次數;
    ????? “{,m}”——匹配0到m之間任意次數;
    他們放到匹配格式的后面:
    例如:
    電話號碼:024-84820482,02484820482(假設前面3或者4位,后面7或者8位,并且中間的減號可有可無)

    都是符合規定的,那么可以用如下格式來匹配:[0-9]{3,4} \-? [0-9]{7,8};
    注意:“\”為轉義字符,因為“-”在正則表達式用有代表一個范圍的意義,例如:前面所說的[0-9],

    所以它需要轉義字符“\”進行轉義才可使用;
    4、“^”為否符號,表示不想匹配的符號,例如:[^z][a-z]+可以匹配所有除“z”開頭的以外的所有字

    符串(長度大于2,因為“+”表示大于等于1的次數,從第二位開始都是小寫英文字符);
    如果^放到[]的外邊則表示以[]開頭的字符串;^[az][a-z]+表示a或者z開頭的長度大于等于2的英文字符

    串;
    5、“|”或運算符,例如:a[n|bc|cb]c可以匹配“abcc”,“anc”,“acbc”;
    6、“$”以它前面的字符結尾的;例如:ab+$就可以被“abb”,“ab”匹配;
    7、一些簡單表示方法:
    \d表示[0-9];\D表示[^0-9];\w表示[A-Z0-9];\W表示[^A-Z0-9];\s表示[\t\n\r\f],就是空格字符包括tab

    ,空格等等;\S表示[^\t\n\r\f],就是非空格字符;
    8、常用的匹配:
    匹配中文字符: “[\u4e00-\u9fa5]”;
    匹配雙字節字符(包括漢字在內):“[^\x00-\xff]”;
    匹配空行的正則表達式:“\n[\s| ]*\r”;
    匹配HTML標記的正則表達式:“/<(.*)>.*<\/\1>|<(.*) \/>/”;
    匹配首尾空格的正則表達式:“(^\s*)|(\s*$)”;
    匹配非負整數(正整數 + 0):“^\d+$”;  
    匹配正整數:“^[0-9]*[1-9][0-9]*$”;
    匹配非正整數(負整數 + 0):“^((-\d+)|(0+))$”;
    匹配負整數:“^-[0-9]*[1-9][0-9]*$”;
    匹配整數:“^-?\d+$”;
    匹配非負浮點數(正浮點數 + 0):“^\d+(\.\d+)?$”
    匹配正浮點數:“^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*

    ))$”;
    ^((-\d+(\.\d+)?)|(0+(\.0+)?))$  //匹配非正浮點數(負浮點數 + 0)
    ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //匹配

    負浮點數
    匹配浮點數:“^(-?\d+)(\.\d+)?$”;
    匹配由數字、26個英文字母或者下劃線組成的字符串:“^\w+$”;
    匹配email地址:“^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$”;
    匹配url:“^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$”

    下面是正則表達式中的一些常用模式。

    /pattern/? 結果?
    . 匹配除換行符以外的所有字符
    x? 匹配 0 次或一次 x 字符串
    x* 匹配 0 次或多次 x 字符串,但匹配可能的最少次數
    x+ 匹配 1 次或多次 x 字符串,但匹配可能的最少次數
    .* 匹配 0 次或一次的任何字符
    .+ 匹配 1 次或多次的任何字符
    {m} 匹配剛好是 m 個 的指定字符串
    {m,n} 匹配在 m個 以上 n個 以下 的指定字符串
    {m,} 匹配 m個 以上 的指定字符串
    [] 匹配符合 [] 內的字符
    [^] 匹配不符合 [] 內的字符
    [0-9] 匹配所有數字字符
    [a-z] 匹配所有小寫字母字符
    [^0-9] 匹配所有非數字字符
    [^a-z] 匹配所有非小寫字母字符
    ^ 匹配字符開頭的字符
    $ 匹配字符結尾的字符
    \d 匹配一個數字的字符,和 [0-9] 語法一樣
    \d+ 匹配多個數字字符串,和 [0-9]+ 語法一樣
    \D 非數字,其他同 \d
    \D+ 非數字,其他同 \d+
    \w 英文字母或數字的字符串,和 [a-zA-Z0-9] 語法一樣
    \w+ 和 [a-zA-Z0-9]+ 語法一樣
    \W 非英文字母或數字的字符串,和 [^a-zA-Z0-9] 語法一樣
    \W+ 和 [^a-zA-Z0-9]+ 語法一樣
    \s 空格,和 [\n\t\r\f] 語法一樣
    \s+ 和 [\n\t\r\f]+ 一樣
    \S 非空格,和 [^\n\t\r\f] 語法一樣
    \S+ 和 [^\n\t\r\f]+ 語法一樣
    \b 匹配以英文字母,數字為邊界的字符串
    \B 匹配不以英文字母,數值為邊界的字符串
    a|b|c 匹配符合a字符 或是b字符 或是c字符 的字符串
    abc 匹配含有 abc 的字符串
    (pattern) () 這個符號會記住所找尋到的字符串,是一個很實用的語法。第一個 () 內所找到的字符串
    變成 $1 這個變量或是 \1 變量,第二個 () 內所找到的字符串變成 $2 這個變量或是 \2 變量,以此
    類推下去。?
    /pattern/i i 這個參數表示忽略英文大小寫,也就是在匹配字符串的時候,不考慮英文的大小寫問題。
    \ 如果要在 pattern 模式中找尋一個特殊字符,如 "*",則要在這個字符前加上 \ 符號,這樣才會讓特殊
    字符失效
    3、正則表達式的八大原則
      如果在 Unix 中曾經使用過 sed、awk、grep 這些命令的話,相信對于正則表達式(Regular Expression)
    不會感到陌生。下面給大家介紹幾條正則表達式使用過程中的 8 大原則。

    正則表達式在對付數據的戰斗中可形成龐大的聯盟——這常常是一場戰爭。我們要記住下面八條原則:

    · 原則1:正則表達式有三種不同形式(匹配(m/ /),替換(s/ / /eg)和轉換(tr/ / /))。

    · 原則2:正則表達式僅對標量進行匹配( $scalar =~ m/a/; 可以工作; @array =~ m/a/ 將把@array作為標量
    對待,因此可能不會成功)。

    · 原則3:正則表達式匹配一個給定模式的最早的可能匹配。缺省時,僅匹配或替換正則表達式
    一次( $a = 'string string2'; $a =~ s/string/ /; 導致 $a = 'string 2')。

    · 原則4:正則表達式能夠處理雙引號所能處理的任意和全部字符( $a =~ m/$varb/ 在匹配前把varb擴展為
    變量;如果 $varb = 'a' $a = 'as',$a =~ s/$varb/ /; 等價于 $a =~ s/a/ /; ,執行結果使 $a = " s" )。

    · 原則5:正則表達式在求值過程中產生兩種情況:結果狀態和反向引用: $a=~ m/pattern/ 表示 $a 中是否有
    子串 pattern 出現,$a =~ s/(word1)(word2)/$2$1/ 則“調換”這兩個單詞。

    · 原則6:正則表達式的核心能力在于通配符和多重匹配運算符以及它們如何操作。$a =~ m/\w+/ 匹配一個或多個
    單詞字符;$a =~ m/\d/" 匹配零個或多個數字。

    · 原則7:如果欲匹配不止一個字符集合,Perl使用 "|" 來增加靈活性。如果輸入 m/(cat|dog)/ 則相當于“匹配
    字符串 cat 或者 dog。

    · 原則8:Perl用 (?..) 語法給正則表達式提供擴展功能。

    posted on 2006-06-05 09:15 野草 閱讀(731) 評論(0)  編輯  收藏 所屬分類: html/js
    主站蜘蛛池模板: 午夜一级毛片免费视频| 99久久国产热无码精品免费| 麻豆成人精品国产免费| 亚洲av永久综合在线观看尤物| 久久久免费的精品| 亚洲精品线在线观看| 免费无码毛片一区二区APP| 亚洲久本草在线中文字幕| 亚洲三级在线免费观看| 亚洲AV无码一区二区三区在线| 欧洲一级毛片免费| 亚洲精品456人成在线| 麻豆国产精品入口免费观看| 亚洲大码熟女在线观看| jizzjizz亚洲| 香蕉免费一级视频在线观看| 国产亚洲一区二区精品| 免费A级毛片无码A∨中文字幕下载| 久久夜色精品国产噜噜亚洲AV| 91免费在线播放| 亚洲日本一线产区和二线| 国产国产成年年人免费看片| 一级毛片免费视频网站| 色噜噜亚洲精品中文字幕| 国产午夜无码精品免费看动漫| 亚洲精品资源在线| 在线a人片天堂免费观看高清| 在线观看亚洲免费| 亚洲精品高清国产一线久久| 100部毛片免费全部播放完整| 天堂亚洲国产中文在线| 亚洲一级Av无码毛片久久精品| 久久久久久免费一区二区三区| 亚洲国产精品网站久久| 国产又黄又爽又猛的免费视频播放| 一日本道a高清免费播放| 中文字幕亚洲第一在线| 国产成人精品免费直播| 精品成人免费自拍视频| 亚洲免费网站观看视频| 国产亚洲精品国产|