正規表示式詳解 從入門到精通

2021-09-01 13:04:47 字數 2713 閱讀 9422

關於正則 照著打一遍就行了 真的照著從頭到尾敲一遍就會了,前後最多45分鐘

如果想測試自己敲的正則是不是正確,除了程式設計之外,可以在文字編輯器(別用記事本)中』搜尋』 然後點中正則匹配 :

我用的是sublime ctrl+f是搜尋 …

# # 正則 regular

# # 基礎正則

# \d 匹配乙個數字([0-9]])

# \w 匹配乙個字母或者數字([0-9a-za-z])

# . 匹配任意字元

# '00\d' ->00d(d為數字)

# '\d\d\d' -> ddd(d為數字)

# '\w\w\d' -> wwd(w為字母或者數字,d為數字)

# '\w\d.' -> wdx(w為字母或者數字,d為數字,x為任意字元)

# \s 匹配乙個空格(包括tab等空白符)

# 特殊字元需要用'\'轉義

# 例如'-'->'\-'

# 再例如'_'->'\_'

# * 表示n個字元(0~n)

# + 表示n個字元(1~n)

# ? 表示0~1個字元(0~1)

# 表示n個字元

# 表示n~m個字元

# \s+ 表示至少有乙個空格

# \s? 表示'' 或者 ' '

# \d 表示 3~8個數字

# 區號(3~4位)-**號(6~8位)

# \d\-\d

# # 高階正則 精確匹配

# [0-9a-za-z\_] -> [乙個數字或者字母或者下劃線構成的字串]

# [0-9a-za-z\_]+ -> [(至少)乙個數字字母下劃線構成的字串]

# [a-za-z\_][0-9a-za-z_]* -> [字母或者下劃線開頭]+[任意多個(可以沒有)數字字母下劃線構成的字串]

# [a-za-z\_][0-9a-za-z\_] -> [字母或者下劃線開頭]+[0~19個數字字母下劃線構成的字串] 《總長為1-20>

# a|b 匹配a或者b

# (****|love) you -> **** you 或者 love you

# # 整行匹配

# ^ 表示行的開頭 ^\d 表示必須以數字開頭

# $ 表示行的結尾 \d$ 表示必須以數字結尾

# **** -> '*******','xx****xx','xx****','****' 等

# ^**** -> '*******','****' 只能匹配到****開頭的

# ****$ -> 'xx****','****' 只能匹配到****結尾的

# ^****$ -> '****' 只能匹配到****開頭並結尾的

# 嗯 擼乙個匹配身份證的正則

# 省兩位數字,市兩位數字,區兩位數字,生日8位數字,後面四位數字或者3個數字+x(x)

# 32個省 11是北京 65是新疆 71是台灣 81 82 是港澳(我查了城市code表..) so...

# (數字開頭,x或者數字結尾) 省+4位數字+4位年份(1900-2099)+2位月份() +2位日子+3位數字 +1位數字或者x/x

# 偽 : ^[1-6][0-9] + \d + (19|20)\d + ((0[1-9])|10|11|12) + (([0-2][1-9])|10|20|30|31)\d[0-9xx]$

# 真 : ^[1-8][0-9]\d(19|20)\d((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d[0-9xx]$

# 簡單點 : ^\d(19|20)\d((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d[0-9xx]$

# 諸位有興趣可以查城市code表編寫乙個非常精確地身份證正則匹配...

# 嗯 再擼乙個手機號驗證

# 1開頭,共11位,第二位可能存在(3,4,5,6,7,8,9)...保險起見第二位也應該是隨機數字,因為之前用的正則是不包含7,9的 後來公司系統報錯,才發現有使用者用177的手機號註冊系統,麻蛋,誰知道以後三大執行商又要出乙個10010010100的號

# ^1[3-9]\d$

# ^1\d$

# 手機號測試

18811055820

12763625935

29927192749

# 身份證測試

130704198610021076

13070519991021123x

3318231998100910xx

701823199810091092

999999199210281099

# 整行匹配測試

*******x

xx****xx

xx****

****

中國城市**表 傳送

book 正規表示式從入門到精通

感覺正則能力太差了,每天花乙個小時看看咯。匹配單個字元,匹配多個字元 search 比如 對輸入字串進行測試,看該字串是否存在乙個 號碼或者乙個信用卡號模式。稱為 資料有效性驗證。replace 標識 文件中特定文字,將其全部替換或者刪除。對乙個正規表示式模式 或者 部分模式 兩邊新增圓括號,將導致...

精通正規表示式 1 正規表示式入門

1 能檢查多個檔案,挑出包含重複單詞的行,高亮標記每個重複單詞 使用標準ansi的轉義字元列 同時必須顯示這行文字來自哪個檔案。2 能跨行查詢,即使兩個單詞乙個在某行末尾而另乙個在下一行的開頭,也算重複單詞。3 能進行不區分大小寫的查詢,例如 the the.重複單詞之間可以出現任意數量的空白字元 ...

Lex和Yacc從入門到精通 2 正規表示式篇

正規表示式在unix liunx系統中起著非常重要的作用,在很大一部分的程式中都使用了正規表示式,可以這麼說 在unix linux系統中,如果不懂正規表示式就不算會使用該系統 本文中使用的lex和yacc都是基於正規表示式的應用,因此有必要用一篇文件的形式詳細說明在lex和yacc中使用的正規表示...