常用正則

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

在線正則表達(dá)式測試:?http://tool.oschina.net/regex/

用戶名:/^[a-z0-9_-]{3,16}$/

密碼:/^[a-z0-9_-]{6,18}$/

強(qiáng)密碼(必須包含大小寫字母和數(shù)字的組合,不能使用特殊字符溜畅,長度在8-10之間):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$

十六進(jìn)制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/

電子郵箱:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/

IP 地址:/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/

手機(jī)號碼:^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(16[6])|(17[0,1,3,5-8])|(18[0-9])|(19[1,8,9]))\\d{8}\$

電話號碼("XXX-XXXXXXX"捏卓、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"慈格、"XXX-XXXXXXXX"怠晴、"XXXXXXX"和"XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$

國內(nèi)電話號碼(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}

日期格式:^\d{4}-\d{1,2}-\d{1,2}

一年的12個(gè)月(01~09和1~12):^(0?[1-9]|1[0-2])$

一個(gè)月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$

提取頁面超鏈接:(<a\\s*(?!.*\\brel=)[^>]*)(href="https?:\\/\\/)((?!(?:(?:www\\.)?'.implode('|(?:www\\.)?', $follow_list).'))[^" rel="external nofollow" ]+)"((?!.*\\brel=)[^>]*)(?:[^>]*)>

提取網(wǎng)頁圖片:\\< *[img][^\\\\>]*[src] *= *[\\"\\']{0,1}([^\\"\\'\\ >]*)

提取網(wǎng)頁顏色代碼:^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$

錢的輸入格式:

? ? 1.有四種錢的表示形式我們可以接受:"10000.00" 和 "10,000.00", 和沒有 "分" 的 "10000" 和 "10,000":^[1-9][0-9]*$

? ? 2.這表示任意一個(gè)不以0開頭的數(shù)字,但是,這也意味著一個(gè)字符"0"不通過,所以我們采用下面的形式:^(0|[1-9][0-9]*)$

? ? 3.一個(gè)0或者一個(gè)不以0開頭的數(shù)字.我們還可以允許開頭有一個(gè)負(fù)號:^(0|-?[1-9][0-9]*)$

? ? 4.這表示一個(gè)0或者一個(gè)可能為負(fù)的開頭不為0的數(shù)字.讓用戶以0開頭好了.把負(fù)號的也去掉,因?yàn)殄X總不能是負(fù)的吧.下面我們要加的是說明可能的小數(shù)部分:^[0-9]+(.[0-9]+)?$

? ? 5.必須說明的是,小數(shù)點(diǎn)后面至少應(yīng)該有1位數(shù),所以"10."是不通過的,但是 "10" 和 "10.2" 是通過的:^[0-9]+(.[0-9]{2})?$

? ? 6.這樣我們規(guī)定小數(shù)點(diǎn)后面必須有兩位,如果你認(rèn)為太苛刻了,可以這樣:^[0-9]+(.[0-9]{1,2})?$

? ? 7.這樣就允許用戶只寫一位小數(shù).下面我們該考慮數(shù)字中的逗號了,我們可以這樣:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$

? ? 8.1到3個(gè)數(shù)字,后面跟著任意個(gè) 逗號+3個(gè)數(shù)字,逗號成為可選,而不是必須:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$

? ? 備注:這就是最終結(jié)果了,別忘了"+"可以用"*"替代如果你覺得空字符串也可以接受的話(奇怪,為什么?)最后,別忘了在用函數(shù)時(shí)去掉去掉那個(gè)反斜杠,一般的錯(cuò)誤都在這里

HTML 標(biāo)簽:/^<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)$/

Unicode編碼中的漢字范圍:/^[u4e00-u9fa5],{0,}$/

匹配中文字符的正則表達(dá)式: [\u4e00-\u9fa5]

匹配雙字節(jié)字符(包括漢字在內(nèi)):[^\x00-\xff]

評注:可以用來計(jì)算字符串的長度(一個(gè)雙字節(jié)字符長度計(jì)2浴捆,ASCII字符計(jì)1)

匹配空白行的正則表達(dá)式:\n\s*\r

評注:可以用來刪除空白行

匹配HTML標(biāo)記的正則表達(dá)式:<(\S*?)[^>]*>.*?</\1>|<.*? />

評注:網(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è)基本可以滿足需求

匹配帳號是否合法(字母開頭梯捕,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

評注:表單驗(yàn)證時(shí)很實(shí)用

匹配國內(nèi)電話號碼:\d{3}-\d{8}|\d{4}-\d{7}

評注:匹配形式如 0511-4405222 或 021-87888822

匹配騰訊QQ號:[1-9][0-9]{4,}

評注:騰訊QQ號從10000開始

匹配中國大陸郵政編碼:[1-9]\d{5}(?!\d)

評注:中國大陸郵政編碼為6位數(shù)字

匹配身份證:\d{15}|\d{18}

評注:中國大陸的身份證為15位或18位

匹配ip地址:\d+\.\d+\.\d+\.\d+

評注:提取ip地址時(shí)有用

匹配特定數(shù)字:

^.{3,20}$? ? //數(shù)字

^[1-9]\d*$    //匹配正整數(shù)

^-[1-9]\d*$   //匹配負(fù)整數(shù)

^-?[1-9]\d*$   //匹配整數(shù)

^.{3,20}$? ? //長度為3-20的所有字符

^[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+$ 或 ^\w{3,20}$  //匹配由數(shù)字傀顾、26個(gè)英文字母或者下劃線組成的字符串

^[\u4e00-\u9fa5]{0,}$? ? //漢字

^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$? ? //中文、英文碌奉、數(shù)字但不包括下劃線等符號

[^%&',;=?$\x22]+? ? //可以輸入含有^%&',;=?$\"等字符

[^~\x22]+? ? //禁止輸入含有~的字符

其它:

.*匹配除 \n 以外的任何字符短曾。

/[\u4E00-\u9FA5]/? ? //漢字

/[\uFF00-\uFFFF]/? ? //全角符號

/[\u0000-\u00FF]/? ? //半角符號


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寒砖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子错英,更是在濱河造成了極大的恐慌入撒,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椭岩,死亡現(xiàn)場離奇詭異茅逮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)判哥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門献雅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人塌计,你說我怎么就攤上這事挺身。” “怎么了锌仅?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵章钾,是天一觀的道長。 經(jīng)常有香客問我热芹,道長贱傀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任伊脓,我火速辦了婚禮府寒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘报腔。我一直安慰自己株搔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布纯蛾。 她就那樣靜靜地躺著纤房,像睡著了一般。 火紅的嫁衣襯著肌膚如雪翻诉。 梳的紋絲不亂的頭發(fā)上炮姨,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機(jī)與錄音米丘,去河邊找鬼剑令。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拄查,可吹牛的內(nèi)容都是我干的吁津。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼碍脏!你這毒婦竟也來了梭依?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤典尾,失蹤者是張志新(化名)和其女友劉穎役拴,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體钾埂,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡河闰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了褥紫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姜性。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖髓考,靈堂內(nèi)的尸體忽然破棺而出部念,到底是詐尸還是另有隱情,我是刑警寧澤氨菇,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布儡炼,位于F島的核電站,受9級特大地震影響查蓉,放射性物質(zhì)發(fā)生泄漏乌询。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一奶是、第九天 我趴在偏房一處隱蔽的房頂上張望楣责。 院中可真熱鬧竣灌,春花似錦聂沙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屯烦,卻和暖如春坷随,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背驻龟。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工温眉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人翁狐。 一個(gè)月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓类溢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親露懒。 傳聞我的和親對象是個(gè)殘疾皇子闯冷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 整數(shù)或者小數(shù):^[0-9]+\.{0,1}[0-9]{0,2}$ 只能輸入數(shù)字:"^[0-9]*$"砂心。 只能輸入n...
    YangMIn閱讀 948評論 0 0
  • hello,大家好蛇耀,正則想必是每個(gè)程序員的苦惱辩诞,每次都要去反復(fù)敲定才能使用,這是我平常收集使用的一些正則表達(dá)式現(xiàn)在...
    MC丶逗逼嘿閱讀 798評論 0 0
  • 匹配雙字節(jié)字符(包括漢字在內(nèi)):[^x00-xff] 評注:可以用來計(jì)算字符串的長度(一個(gè)雙字節(jié)字符長度計(jì)2纺涤,AS...
    LiJinliang閱讀 279評論 0 0
  • 匹配中文字符: [u4e00-u9fa5] 匹配雙字節(jié)字符(包括漢字在內(nèi)):[^x00-xff] 可以用來計(jì)算字符...
    MaxWithU閱讀 228評論 0 2
  • 正則表達(dá)式象迎,一個(gè)十分古老而又強(qiáng)大的文本處理工具,僅僅用一段非常簡短的表達(dá)式語句呛踊,便能夠快速實(shí)現(xiàn)一個(gè)非常復(fù)雜的業(yè)務(wù)邏...
    李紹俊閱讀 585評論 0 0