正則表達式詳析+常用示例

一、正則的含義

正則表達式就是用來操作字符串的一種邏輯公式

二、正則表達式的應用場景

  • 數據分析時數據獲取的文本篩選
  • 進行爬蟲時,網頁數據的匹配
  • 寫前端代碼的時候,用戶輸入數據的驗證
  • 測試人員對請求結果的數據驗證
  • 批量文本編輯,比如Sublime Textnodepad++EditPlus等記事本軟件全都支持正則表達式的使用

三、常用的格式校驗

  • 郵箱驗證
  • IP地址驗證
  • 電話號碼驗證
  • 身份證號碼驗證
  • 密碼強度驗證
  • 網址驗證
  • 漢字驗證 [\u4e00-\u9fa5]
  • ……
  • 凡是有一定規律的,批量的數據獲取,都可以使用正則表達式來完成

四、元字符

字符 說明
. 代表的是換行符以外的任意字符。 換行符是:(不同的操作系統有不同的換行符) \n \r\n
\w 匹配字母、數字、下劃線、漢字的一個字符
\s 匹配任意的空白符
\d 匹配數字
^ 匹配字符串的開始
$ 匹配字符串的結束

五、反義代碼 

反義代碼的意思就是與元字符表示相反的代碼

  • \W 匹配的任意 不是 字母、數字、下劃線、漢字 的字符
  • \S 匹配任意 不是 空白符的字符
  • \D 匹配任意 不是 數字的字符

六、限定符

符號 說明
* 代表的重復0次或者是多次
+ 代表的重復1次或者是多次
代表的是重復0次或者是1次
{n} 重復n次,舉例:{3}指的就是重復3次
{n,} 重復n次或者更多次數
{n,m} 重復n次到m次,所以這裡m一般要比n

七、分組匹配

  • findall / search/match 區別¶
  • findall 是查找所有的
  • search 匹配第一個
  • match 匹配開頭的

八、貪婪與非貪婪

  • 貪婪的意思是盡可能多的匹配
  • 非貪婪的意思就是盡可能少的匹配
  • 非貪婪操作符是問號:'符號?'
  • ?號代表的是重復0次或者是1次,再加一個問號,代表的是非貪婪操作,那麼最後就隻匹配0次

分支條件匹配:

使用 | 來分隔開不同的正則表達式,代表著 條件1 或 條件2 或條件3 ……

九、零寬斷言

  • 匹配"正則表達式reg"前邊的位置 (?=reg)
  • 匹配"正則表達式reg"後邊的位置 (?<=reg)
  • 匹配後邊跟的不是"正則表達式reg"的位置 (?!reg)
  • 匹配前邊不是"正則表達式reg"的位置 (?<!reg)

十、常用的實用正則表達式

  •   輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。
  •   輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。
  •   輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。
  •   輸入非零的正整數:"^"+?[1-9][0-9]*$"。
  •   輸入非零的負整數:"^"-[1-9][]0-9"*$。
  •   輸入長度為3的字符:"^.{3}$"。
  •   輸入由26個英文字母組成的字符串:"^[A-Za-z]+$"。
  •   輸入由26個大寫英文字母組成的字符串:"^[A-Z]+$"。
  •   輸入由26個小寫英文字母組成的字符串:"^[a-z]+$"。
  •   輸入由數字和26個英文字母組成的字符串:"^[A-Za-z0-9]+$"。
  •   輸入由數字、26個英文字母或者下劃線組成的字符串:"^"w+$"。
  •   驗證用戶密碼:"^[a-zA-Z]"w{5,17}$"正確格式為:以字母開頭,長度在6~18之間,隻能包含字符、數字和下劃線。
  •   驗證是否含有^%&’,;=?$""等字符:"[^%&’,;=?$"x22]+"。
  •   隻能輸入漢字:"^["u4e00-"u9fa5]{0,}$"
  •   驗證Email地址:"^"w+([-+.]"w+)*@"w+([-.]"w+)*"."w+([-.]"w+)*$"。
  •   驗證InternetURL:"^http://(["w-]+".)+["w-]+(/["w-./?%&=]*)?$"。
  •   驗證電話號碼:"^("("d{3,4}-)|"d{3.4}-)?"d{7,8}$"正確格式為:"XXX-XXXXXXX"、"XXXX- XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
  •   驗證身份證號(15位或18位數字):"^"d{15}|"d{18}$"。
  •   驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"。
  •   驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"。

到此這篇關於正則表達式詳析+常用示例的文章就介紹到這瞭,更多相關正則表達式 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: