正則表達式是一個編程的藝術,很難調試,學習和理解,但強大的功能,仍吸引很多開發者編寫正則表達式。讓咱們探索一下下面10個實際應用中的正則表達式。正則表達式
1. 用戶名正則表達式模式
^[a-z0-9_-]{3,15}$
^ # 行開始
[a-z0-9_-] # 匹配列表中的字符,a-z,0–9,下劃線,連字符
{3,15} # 長度至少3個字符,最大長度爲15
$ # 行結束編程
2. 密碼正則表達式模式
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})
( # 組開始
(?=.*\d) # 必須包含一個數字 0-9
(?=.*[a-z]) # 必須包含一個小寫字符
(?=.*[A-Z]) # 必須包含一個大寫字符
(?=.*[@#$%]) # 必須包含一個列表中的特殊字符"@#$%"
. # 檢查全部字符串與前面的條件的匹配
{6,20} # 長度至少爲6個字符,最大長度爲20
) # 組結束ide
3. 16進制顏色代碼正則表達式模式
^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
^ # 行開始
# # 必須包含一個"#"符號
( # 組#1開始
[A-Fa-f0-9]{6} # 列表中的任意字符串,長度爲6
| # ..或者
[A-Fa-f0-9]{3} # 列表中的任意字符串,長度爲3
) # 組#1結束
$ # 行結束學習
4. Email 正則表達式模式
^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$
^ # 行開始
[_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,} # 接下來是一個點"."和中括號內的字符[], 最小長度爲2
) # 組#3結束
$ # 行結束spa
5. 圖像文件擴展名正則表達式模式
([^\s]+(\.(?i)(jpg|png|gif|bmp))$)
( # 組#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)<a([^>]+)>(.+?)</a>
( # 組#1開始
?i # 全部的檢查區分大小寫
) # 組#1結束
<a # 以"<a"開始
( # 組#2開始
[^>]+ # 除了(">")以外的任意字符,至少一個字符
) # 組#2結束
> # 接下來是">"
(.+?) # 匹配全部
</a> # 以"</a>結束提取HTML連接正則表達式模式
\s*(?i)href\s*=\s*(\"([^"]*\")|'[^']*'|([^'">\s]+));
\s* # 能夠以空格開始
(?i) # 全部的檢查是區分大小寫的
href # 接下來是一個"href"字
\s*=\s* # 等號兩邊都容許空格,
( # 組#1開始
"([^"]*") # 只容許2個雙引號成對出現 - "string"
| # ..或者
'[^']*' # 只容許2個單引號成對出現 - 'string'
| # ..或者
([^'">]+) # 或者不容許出現單獨的單引號、雙引號和">"
) # 組#1結束get