一些常見正規表示式

2021-08-22 05:21:28 字數 1728 閱讀 5007

vim 版

說明:\d 代表 [0-9]

\l 代表 [a-z]

\u 代表 [a-z]

\a 代表 [a-za-z]

\w 代表 [a-za-z0-9_]

匹配中文字元:

[\\u4e00-\\u9fa5]

說明:貌似 vim 中這個不好使 :(

匹配雙位元組字元(包括漢字在內):

[^\x00-\xff]

匹配空白行的正規表示式:

\n\s*\r

匹配 html 標記的正規表示式:

<(\s*?)[^>]*>.*?\|<.*? />

說明:僅能匹配一部分,對於複雜的巢狀標記無能為力

匹配首尾空白字元的正規表示式:

首 ^\s*

尾 \s*$

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 或者 [\w-]\+(\.[\w-]\+)*@[\w-]\+(\.[\w-]\+)\+

\(\l\|\u\)\+://[^\s]* 或者 \(\l\|\u\)\+://(\w\+(-\w\+)*)(\.(\w\+(-\w\+)*))*(\?\s*)?

匹配帳號是否合法(字母開頭,5-16位元組,允許字母數字下劃線):

\(\l\|\u\)\w\

匹配國內固定**號碼:

\d\-\d\

[1-9]\d\

[1-9]\d\(?!\d)

匹配身份證號:

\d\\|\d\\|\d\[xx]

\d+\.\d+\.\d+\.\d+

匹配特定數字(這裡全不允許 0 打頭,如果允許的話,需要調整一下):

非負整數 [1-9]\d*\|0

正整數 [1-9]\d*

非正整數 -[1-9]\d*\|0

負整數 -[1-9]\d*

整數 -?[1-9]\d*

非負浮點數 \d\+(\.\d\+)? 或者 [1-9]\d*\.\d*\|0\.\d*[1-9]\d*\|0?\.0+\|0

正浮點數 ((\d\+\.\d*[1-9]\d*)\|(\d*[1-9]\d*\.\d\+)\|(\d*[1-9]\d*)) 或者 [1-9]\d*\.\d*\|0\.\d*[1-9]\d*

非正浮點數 ((-\d\+(\.\d\+)?)\|(0\+(\.0\+)?)) 或者 (-([1-9]\d*\.\d*\|0\.\d*[1-9]\d*))\|0?\.0+\|0

負浮點數 (-((\d\+\.\d*[1-9]\d*)\|(\d*[1-9]\d*\.\d\+)\|(\d*[1-9]\d*))) 或者 -([1-9]\d*\.\d*\|0\.\d*[1-9]\d*)

浮點數 (-?\d\+)(\.\d\+)? 或者 -?([1-9]\d*\.\d*\|0\.\d*[1-9]\d*\|0?\.0+\|0)

匹配特定字串:

由英文本母組成的字串 \a\+

由大寫英文本母組成的字串 \u\+

由小寫英文本母組成的字串 \l\+

由數字和英文本母組成的字串 \(\l\|\u\|\d\)\+

由數字、英文本母和下劃線組成的字串 \w\+

特殊匹配(前跟某模式,後跟某模式,前不跟某模式,後不跟某模式)

後跟bar的foo foo\(bar\)\@=

後不跟bar的foo foo\(bar\)\@!

前跟bar的foo \(bar\)\@<=foo

前不跟bar的foo \(bar\)\@

一些正規表示式

要嚴格的驗證手機號碼,必須先要清楚現在已經開放了哪些數字開頭的號碼段,目前國內號碼段分配如下 移動 134 135 136 137 138 139 150 151 157 td 158 159 187 188 聯通 130 131 132 152 155 156 185 186 電信 133 153...

一些正規表示式

判斷是否是正整數if isnan paramvalue paramvalue 0 else 金額的格式判斷輸入金額的要求 整數字最多十位,小數為最多為兩位,可以無小數字 0 9 1 9 0 9 0 9 function checkmoney str 0 9 if re.test str else 手...

一些正規表示式

記錄一下 以防忘記 string hello 123 4567 world this is a regsssss res re.match w s d s d s w string 匹配到 hello 123 4567 world this 其中 代表乙個字串的開始 代表乙個字串的結尾 w 匹配字母...