正規表示式 例子學習

2022-05-13 05:56:31 字數 4249 閱讀 5124

正規表示式是乙個程式設計的藝術,很難除錯,學習和理解,但強大的功能,仍吸引不少開發者編寫正規表示式。讓我們探索一下下面10個實際應用中的正規表示式。

1. 使用者名稱正規表示式模式

^[a-z0-9_-]$

^ # 行開始

[a-z0-9_-] # 匹配列表中的字元,a-z,0–9,下劃線,連字元

# 長度至少3個字元,最大長度為15

$ # 行結束

2. 密碼正規表示式模式

((?=.*\d)(?=.*[a-z])(?=.*[a-z])(?=.*[@#$%]).)

( # 組開始

(?=.*\d) # 必須包含乙個數字 0-9

(?=.*[a-z]) # 必須包含乙個小寫字元

(?=.*[a-z]) # 必須包含乙個大寫字元

(?=.*[@#$%]) # 必須包含乙個列表中的特殊字元"@#$%"

. # 檢查所有字串與前面的條件的匹配

# 長度至少為6個字元,最大長度為20

) # 組結束

3. 16進製制顏色**正規表示式模式

^#([a-fa-f0-9]|[a-fa-f0-9])$

^ # 行開始

# # 必須包含乙個"#"符號

( # 組#1開始

[a-fa-f0-9] # 列表中的任意字串,長度為6

| # ..或者

[a-fa-f0-9] # 列表中的任意字串,長度為3

) # 組#1結束

$ # 行結束

4. email 正規表示式模式

^[_a-za-z0-9-]+(\\.[_a-za-z0-9-]+)*@[a-za-z0-9]+(\\.[a-za-z0-9]+)*(\\.[a-za-z])$

^ # 行開始

[_a-za-z0-9-]+ # 必須以中括號中的字元為起始字元,必須包含乙個或多個(+)

( # 組#1開始

\\.[_a-za-z0-9-]+ # 接下來是乙個點"."和中括號內的字元,必須包含乙個或者多個(+)

)* # 組#1結束, 這個組是可選的(*)

@ # 必須包含乙個"@"符號

[a-za-z0-9]+ # 接下來是中括號內的字元,必須包含乙個或者多個(+)

( # 組 #2開始 – 一級tld檢查

\\.[a-za-z0-9]+ # 接下來是乙個點"."和中括號內的字元,必須包含乙個或者多個(+)

)* # 組#2結束,這個組是可選的(*)

( # 組#3開始 – 二級tld檢查

\\.[a-za-z] # 接下來是乙個點"."和中括號內的字元, 最小長度為2

) # 組#3結束

$ # 行結束

5. 影象副檔名正規表示式模式

( # 組#1開始

[^\s]+ # 必須包含乙個或更多的任意字元(除了空格)

( # 組#2開始

\. # 接下來是乙個點"."

(?i) # 忽略後邊字元的大小寫檢查

( # 組#3開始

jpg # 包含字元"jpg"

| # ..或者

png # 包含字元"png"

| # .. 或者

gif # 包含字元"gif"

| # .. 或者

bmp # 包含字元"bmp"

) # 組#3結束

) # 組#2結束

$ # 字串的結束

) # 組#1結束

6. ip位址正規表示式模式

^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.

([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$

^ # 行開始

( # 組#1開始

[01]?\\d\\d? # 可以是1到2個數字. 如果出現3個數字, 必須以0或者1開始

# 例如 ([0-9], [0-9][0-9],[0-1][0-9][0-9])

| # ...或者

2[0-4]\\d # 以2開始, 緊跟著是0-4,並且以任意數字結尾(2[0-4][0-9])

| # ...或者

25[0-5] # 以2開始, 緊跟著是5,並且以0-5結尾 (25[0-5])

) # 組#1結束

\. # 接下來是點"."

.... # 重複3次 (3x)

$ # 行結束

7. 時間格式正規表示式模式

12-小時制時間正規表示式模式

(1[012]|[1-9]):[0-5][0-9](\\s)?(?i)(am|pm)

( # 組#1開始

1[012] # 以10, 11, 12開始

| # 或者

[1-9] # 以1,2,...9開始

) # 組#1結束

: # 接下來是乙個冒號 (:)

[0-5][0-9] # 接下來是0..5和0..9,意思是00到59

(\\s)? # 接下來是乙個空格(可選)

(?i) # 下面的檢查不區分大小寫

(am|pm) # 接下來是am或者pm24小時制時間正規表示式模式

([01]?[0-9]|2[0-3]):[0-5][0-9]

( # 組#1開始

[01]?[0-9] # 以0-9,1-9,00-09,10-19開始

| # 或者

2[0-3] # 以20-23開始

) # 組#1結束

: # 接下來是乙個冒號(:)

[0-5][0-9] # 接下來是0..5和0..9,意思是00到59

8. 日期格式 (dd/mm/yyyy) 正規表示式模式

(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)

( # 組#1開始

0?[1-9] # 01-09或者1-9

| # ..或者

[12][0-9] # 10-19或者20-29

| # ..或者

3[01] # 30, 31

) # 組#1結束

/ # 接下來是乙個"/"

( # 組#2開始

0?[1-9] # 01-09或者1-9

| # ..或者

1[012] # 10,11,12

) # 組#2結束

/ # 接下來是乙個"/"

( # 組#3開始

(19|20)\\d\\d # 19[0-9][0-9]或者20[0-9][0-9]

) # 組#3結束

9. html標籤正規表示式模式

< ("[^"]*"|'[^']*'|[^'">])*>

< # 以"<"標籤開始

( # 組#1開始

"[^"]*" # 只允許兩個雙引號成對出現-"string"

| # ..或者

'[^']*' # 只允許兩個單引號成對出現- 'string'

| # ..或者

[^'">] # 不能出現單獨的雙引號、單引號和">"

) # 組#1結束

* # 0次或多次

> # 以結束標籤">"結束

10. html鏈結正規表示式模式

html中的a標籤正規表示式模式

(?i)]+)>(.+?)

( # 組#1開始

?i # 所有的檢查區分大小寫

) # 組#1結束

]+ # 除了(">")之外的任意字元,至少乙個字元

) # 組#2結束

> # 接下來是">"

(.+?) # 匹配所有

# 以"結束提取html鏈結正規表示式模式

\s*(?i)href\s*=\s*(\"([^"]*\")|'[^']*'|([^'">\s]+));

\s* # 可以以空格開始

(?i) # 所有的檢查是區分大小寫的

href # 接下來是乙個"href"字

\s*=\s* # 等號兩邊都允許空格,

( # 組#1開始

"([^"]*") # 只允許2個雙引號成對出現 - "string"

| # ..或者

'[^']*' # 只允許2個單引號成對出現 - 'string'

| # ..或者

([^'">]+) # 或者不允許出現單獨的單引號、雙引號和">"

) # 組#1結束

其他:

正規表示式例子

前言 regular expressions 正規表示式,以下用re稱呼 對小弟來說一直都是神密的地帶,看到一些網路上的大大,簡單用re就決解了某些文字的問題,小弟便興起了學一學re的想法,但小弟天生就比較懶一些,總希望看有沒有些快速學習的方式,於是小弟又請出google大神,借由祂的神力,小弟在網...

正規表示式例子

include regex.hpp include include include include inttest regex match d d d fixed telephone std regex re pattern std vector str std regex match 判斷乙個正規...

Oracle 正規表示式例子

查詢value中不是純數字的記錄 select from fzq select from fzq where regexp like value,digit 以數字開頭,並且匹配多次,直到結尾 select from fzq where regexp like value,digit 以數字開頭,並...