lbom

          小江西

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            18 隨筆 :: 21 文章 :: 69 評論 :: 0 Trackbacks

          常用正則表達(dá)式

            正則表達(dá)式用于字符串處理、表單驗(yàn)證等場合,實(shí)用高效。現(xiàn)將一些常用的表達(dá)式收集于此,以備不時(shí)之需。

          匹配中文字符的正則表達(dá)式: [\u4e00-\u9fa5]
          評注:匹配中文還真是個(gè)頭疼的事,有了這個(gè)表達(dá)式就好辦了

          匹配雙字節(jié)字符(包括漢字在內(nèi)):[^\x00-\xff]
          評注:可以用來計(jì)算字符串的長度(一個(gè)雙字節(jié)字符長度計(jì)2,ASCII字符計(jì)1)

          匹配空白行的正則表達(dá)式:\n\s*\r
          評注:可以用來刪除空白行

          匹配HTML標(biāo)記的正則表達(dá)式:<(\S*?)[^>]*>.*?|<.*? />
          評注:網(wǎng)上流傳的版本太糟糕,上面這個(gè)也僅僅能匹配部分,對于復(fù)雜的嵌套標(biāo)記依舊無能為力

          匹配首尾空白字符的正則表達(dá)式:^\s*|\s*$
          評注:可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達(dá)式

          匹配Email地址的正則表達(dá)式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
          評注:表單驗(yàn)證時(shí)很實(shí)用

          匹配網(wǎng)址URL的正則表達(dá)式:[a-zA-z]+://[^\s]*
          評注:網(wǎng)上流傳的版本功能很有限,上面這個(gè)基本可以滿足需求

          匹配帳號(hào)是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
          評注:表單驗(yàn)證時(shí)很實(shí)用

          匹配GUID:由數(shù)字,字母,下劃線,中劃線組成
          /^[a-zA-Z0-9_\-]*$/

          匹配國內(nèi)電話號(hào)碼:\d{3}-\d{8}|\d{4}-\d{7}
          評注:匹配形式如 0511-4405222 或 021-87888822

          匹配騰訊QQ號(hào):[1-9][0-9]{4,}
          評注:騰訊QQ號(hào)從10000開始

          匹配中國郵政編碼:[1-9]\d{5}(?!\d)
          評注:中國郵政編碼為6位數(shù)字

          匹配身份證:\d{15}|\d{18}
          評注:中國的身份證為15位或18位

          匹配ip地址:\d+\.\d+\.\d+\.\d+
          評注:提取ip地址時(shí)有用

          匹配特定數(shù)字:
          ^[1-9]\d*$    //匹配正整數(shù)
          ^-[1-9]\d*$   //匹配負(fù)整數(shù)
          ^-?[1-9]\d*$   //匹配整數(shù)
          ^[1-9]\d*|0$  //匹配非負(fù)整數(shù)(正整數(shù) + 0)
          ^-[1-9]\d*|0$   //匹配非正整數(shù)(負(fù)整數(shù) + 0)
          ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮點(diǎn)數(shù)
          ^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配負(fù)浮點(diǎn)數(shù)
          ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮點(diǎn)數(shù)
          ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0)
          ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0)
          評注:處理大量數(shù)據(jù)時(shí)有用,具體應(yīng)用時(shí)注意修正

          匹配特定字符串:
          ^[A-Za-z]+$  //匹配由26個(gè)英文字母組成的字符串
          ^[A-Z]+$  //匹配由26個(gè)英文字母的大寫組成的字符串
          ^[a-z]+$  //匹配由26個(gè)英文字母的小寫組成的字符串
          ^[A-Za-z0-9]+$  //匹配由數(shù)字和26個(gè)英文字母組成的字符串
          ^\w+$  //匹配由數(shù)字、26個(gè)英文字母或者下劃線組成的字符串
          評注:最基本也是最常用的一些表達(dá)式

          原載地址:http://lifesinger.3322.org/myblog/?p=185
          posted on 2006-03-31 16:37 lbom 閱讀(395) 評論(0)  編輯  收藏 所屬分類: 網(wǎng)絡(luò)資料
          主站蜘蛛池模板: 上杭县| 崇阳县| 淮北市| 聂荣县| 大冶市| 泸水县| 辽阳县| 湘潭县| 德庆县| 延长县| 社会| 乌鲁木齐市| 镇远县| 西盟| 禄丰县| 江永县| 蒙阴县| 安陆市| 胶州市| 望奎县| 晋城| 图木舒克市| 成安县| 龙门县| 白山市| 绥江县| 丰县| 金平| 蒙城县| 上林县| 柳林县| 罗田县| 靖州| 阜新市| 仁化县| 德钦县| 安西县| 扎赉特旗| 滨州市| 济阳县| 东至县|