正則表達式: ^: 指定字符串開始 $: 指定字符串結束 快捷方式: \d 匹配1個 數字 \w 匹配1個 字母,數字,下劃線 \s 匹配1個 空白字符 \b 不會消耗任何字符只匹配一個位置,常用於匹配單詞邊界 . 匹配除了換行符以外的任何單個字符 取反快捷方式: \W 匹配任意不是字母,數字,下劃線 的字符 \D 匹配任意非數字的字符 \S 匹配任意不是空白符的字符 \B 匹配不是單詞開頭或結束的位置 區間: [0-9] [a-z] [A-Z] [A-Za-z] [abs] a b s 中的一個 量詞: * 0個或者多個 + 一個或者多個 ? 重複零次或一次 {N} 重複n次 {M,N} 重複n到m次 {,N} {M,} 重複M次或更多次 懶惰限定符: "*?" 重複任意次,但儘可能少重複 如 "acbacb" 正則 "a.*?b" 只會取到第一個"acb" 原本可以全部取到但加了限定符後,只會匹配儘可能少的字符 ,而"acbacb"最少字符的結果就是"acb" "+?" 重複1次或更多次,但儘可能少重複 與上面一樣,只是至少要重複1次 "??" 重複0次或1次,但儘可能少重複 如 "aaacb" 正則 "a.??b" 只會取到最後的三個字符"acb" "{n,m}?" 重複n到m次,但儘可能少重複 如 "aaaaaaaa" 正則 "a{0,m}" 因爲最少是0次所以取到結果爲空 "{n,}?" 重複n次以上,但儘可能少重複 如 "aaaaaaa" 正則 "a{1,}" 最少是1次所以取到結果爲 "a" 分組: 多個字符進行重複怎麼辦呢?此時我們就要用到分組,我們可以使用小括號()來指定要重複的子表達式 捕獲組: 捕獲的內容是被存儲在內存中,可供以後使用,比如反向引用就是引用的內存中存儲的捕獲組中捕獲的內容。 非捕獲組: 以 (?) 開頭的組是純的非捕獲 組,它不捕獲文本 ,也不針對組合計進行計數。 就是說,如果小括號中以?號開頭,那麼這個分組就不會捕獲文本,當然也不會有組的編號,因此也不存在Back 引用。 非捕獲組則不會捕獲文本,也不會將它匹配到的內容單獨分組來放到內存中。所以,使用非捕獲組較使用捕獲組更節省內存。 匹配indestry或者indestries,可使用 indestr(y|ies) 或 indestr(?:y|ies) (?:a|A)123(?:b) 可匹配 a123b 或 A123b 引用已存在的分組: \N \1 匹配第一個分組,以此類推,最多99 命名分組: (?P<group_name>) 斷言: reg(?=exp) 零寬度正先行斷言?= reg匹配的內容後面內容滿足exp規則 reg(?!exp) 零寬度負先行斷言?! reg匹配的內容後面內容不滿足exp規則 (?<=exp)reg 零寬度正後發斷言?<= reg匹配的內容前面內容滿足exp規則 (?<!exp) 零寬度負後發斷言?<! reg匹配的內容前面內容不滿足exp規則 常用正則表達式: 漢字: ^[\u4e00-\u9fa5]{0,}$ 英文和數字: ^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$ 中文、英文、數字包括下劃線: ^[\u4E00-\u9FA5A-Za-z0-9_]+$ Email地址: ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 匹配IP段,CIDR: ^(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2]\d|3[0-2])$ 域名: [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.? 手機號碼: ^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$ 電話號碼("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX): ^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$ 身份證號(15位、18位數字),最後一位是校驗位,可能爲數字或字符X: (^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$) 強密碼(必須包含大小寫字母和數字的組合,可以使用特殊字符,長度在8-10之間): ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ InternetURL: [a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ 騰訊QQ號: [1-9][0-9]{4,} (騰訊QQ號從10000開始) 中國郵政編碼: [1-9]\d{5}(?!\d) (中國郵政編碼爲6位數字)
正則表達式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.