1. 程式人生 > 實用技巧 >20200729----正則規則基礎知識

20200729----正則規則基礎知識

# 正則規則(元字元,量詞)
# 第一條規則 : 本身是哪一個字元,就匹配字串中的哪一個字元
# 第二條規則 : 字元組[字元1字元2],一個字元組就代表匹配一個字元,只要這個字元出現在字元組裡,那麼就說明這個字元能匹配上
# 字元組中還可以使用範圍
# 所有的範圍都必須遵循ascii碼從下到大來指定
# [0-9] [a-z] [A-Z]
# [0-9] \d 表示所有的數字
# d --> d
# \d --> \是轉義符 轉義符轉義了d,讓d能夠匹配所有0-9之間的數
# \w 表示 大小寫字母 數字 下劃線
# \s 表示空白 空格 換行符 製表符
# \t 匹配製表符
# \n 匹配換行符
# \D 表示所有的非數字
# \W 表示除 數字字母下劃線之外的所有字元
# \S 表示非空白
# . 表示除了換行符之外的任意內容
# [] 字元組 :只要在中括號內的所有字元都是符合規則的字元
# [^ ]非字元組 :只要在中括號內的所有字元都是不符合規則的字元
# [] [^]
# ^ 表示一個字元的開始
# $ 表示一個字元的結束
# | 表示或,注意,如果兩個規則有重疊部分,總是長的在前面,短的在後面
# () 表示分組,給一部分正則規定為一組,|這個符號的作用域就可以縮小了
# [\d] [0-9] \d 沒有區別 都是要匹配一位數字
# [\d\D] [\W\w] [\S\s] 匹配所有一切字元

# 元字元
# \d \w \s \t(table) \n(next)
# \D \W \S
# .
# [] [^]
# ^ $
# | ()

# 量詞
# {n} 表示只能出現n次
# {n,} 表示至少出現n次
# {n,m}表示至少出現n次,至多出現m次

# ? 表示匹配0次或1次 表示可有可無 但是有隻能有一個 比如小數點
# + 表示匹配1次或多次
# * 表示匹配0次或多次 表示可有可無 但是有可以有多個 比如小數點後n位

# 匹配0次

# 匹配任意的2位整數
# 匹配任意的保留兩位小數的數字
# 匹配一個整數或者小數 \d+\.\d+|\d+ \d+\.?\d* \d+(\.\d+)?

# 預設貪婪匹配,總是會在符合量詞條件的範圍內儘量多匹配
# \d{7,12}
# <html>adljdkjsljdlj</html>
# <.+>
# 非貪婪匹配 :惰性匹配
# 總是匹配符合條件範圍內儘量小的字串

# 元字元 量詞 ? x
# 表示按照元字元規則在量詞範圍內匹配,一旦遇到x就停止

# .*?x 匹配任意的內容任意多次遇到x就立即停止

# 元字元
# 元字元量詞
# 元字元量詞?

# \d+?x .*?x 爬蟲


# 身份證號
# 15位 全數字 首位不為0
# 18位 前17位全數字 首位不為0 最後一位可能是x和數字
# [1-9](\d{14}|\d{16}(\d|x))
# [1-9](\d{16}[\dx]|\d{14})
# [1-9]\d{14}(\d{2}[\dx])?