1. 匹配單個(gè)字符
| 代碼 |
功能說(shuō)明 |
示例 |
匹配結(jié)果說(shuō)明 |
. |
匹配任意一個(gè)字符(除了換行符 \n) |
a.c |
匹配 abc, a@c, a c,但不匹配 ac 或 abbc
|
[ ] |
匹配括號(hào)中列舉的任意一個(gè)字符 |
[aeiou] |
匹配任意一個(gè)元音字母 |
|
|
[0-9A-F] |
匹配一個(gè)十六進(jìn)制數(shù)字 |
\d |
匹配一個(gè)數(shù)字(0-9) |
\d{3} |
匹配三位數(shù),如 123、999
|
\D |
匹配一個(gè)非數(shù)字 |
\D\d+ |
匹配以非數(shù)字開頭后跟若干數(shù)字,如 A123、#456
|
\s |
匹配任意空白字符(空格、Tab、換行等) |
\w+\s\w+ |
匹配兩個(gè)單詞之間有空格的內(nèi)容,如 hello world
|
\S |
匹配任意非空白字符 |
\S+ |
匹配一串連續(xù)的非空字符,常用于提取單詞或URL |
\w |
匹配字母、數(shù)字、下劃線、漢字 |
\w+ |
匹配用戶名、變量名,如 username_123、張三
|
\W |
匹配非字母、非數(shù)字、非下劃線、非漢字 |
\W+ |
匹配特殊字符,如 @, #, $, 中文! 中的 !
|
2. 匹配多個(gè)字符
| 代碼 |
功能說(shuō)明 |
示例 |
匹配結(jié)果說(shuō)明 |
* |
匹配前一個(gè)字符出現(xiàn) 0次或多次(即可有可無(wú)) |
go*gle |
匹配 ggle, google, gooogle 等 |
|
|
ab*c |
匹配 ac, abc, abbbc 等 |
+ |
匹配前一個(gè)字符出現(xiàn) 1次或多次(至少一次) |
go+gle |
匹配 google, gooogle,但不匹配 ggle
|
|
|
a+b |
匹配 ab, aab, aaab,但不匹配 b
|
? |
匹配前一個(gè)字符出現(xiàn) 0次或1次(要么沒(méi)有,要么一次) |
colou?r |
匹配 color 或 colour,但不能匹配 colooor
|
{m} |
匹配前一個(gè)字符出現(xiàn) 恰好 m 次
|
\d{3} |
匹配三位數(shù)字,如 123,但不匹配 12 或 1234
|
{m,n} |
匹配前一個(gè)字符出現(xiàn) 從 m 到 n 次
|
\d{2,5} |
可以匹配 12, 123, 12345,但不匹配 1 或 123456
|
3.匹配開頭和結(jié)尾
| 代碼 |
功能 |
| ^ |
匹配字符串開頭 |
| $ |
匹配字符串結(jié)尾 |
4.匹配分組
| 代碼 |
功能 |
| | |
匹配左右任意一個(gè)表達(dá)式 |
| (ab) |
將括號(hào)中字符作為一個(gè)分組 |
\num |
引用分組num匹配到的字符串 |
(?P<name>) |
分組起別名 |
| (?P=name) |
引用別名為name分組匹配到的字符串 |
5.貪婪與非貪婪
| 正則 |
待匹配字符 |
匹配結(jié)果 |
說(shuō)明 |
| <.*> |
<script>...<script>
|
<script>...<script>
|
默認(rèn)為貪婪匹配模式,會(huì)匹配盡量長(zhǎng)的字符串 |
| <.*?> |
r'\d' |
<script><script> |
加上?為將貪婪匹配模式轉(zhuǎn)為非貪婪匹配模式,會(huì)匹配盡量短的字符串 |
加上?為將貪婪匹配模式轉(zhuǎn)為非貪婪匹配模式,會(huì)匹配盡量短的字符串
*? 重復(fù)任意次,但盡可能少重復(fù)
+? 重復(fù)1次或更多次,但盡可能少重復(fù)
?? 重復(fù)0次或1次,但盡可能少重復(fù)
{n,m}? 重復(fù)n到m次,但盡可能少重復(fù)
{n,}? 重復(fù)n次以上,但盡可能少重復(fù)
1. 匹配手機(jī)號(hào)(中國(guó)大陸)
^1[3-9]\d{9}$
- 示例:
13812345678
- 說(shuō)明:
-
^1 表示以 1 開頭
-
[3-9] 表示第二位是 3~9 的數(shù)字
-
\d{9} 表示后面還有 9 個(gè)數(shù)字
2. 匹配郵箱地址
^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
- 示例:
test.user@example.com
- 說(shuō)明:
-
\w+ 匹配郵箱用戶名部分
-
@ 和 . 是必須的符號(hào)
- 支持帶子域名的郵箱格式
3. 提取網(wǎng)頁(yè)中的超鏈接
<a\s+href=["'](.*?)["']>
4.提取日期格式(YYYY-MM-DD)
\d{4}-\d{2}-\d{2}
- 示例:
2025-06-02
- 擴(kuò)展:
- 可加邊界判斷:
\b\d{4}-\d{2}-\d{2}\b
- 支持斜杠:
\d{4}[-/]\d{2}[-/]\d{2}
5.校驗(yàn)密碼強(qiáng)度(含大小寫、數(shù)字、至少8位)
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$
- 示例:
Password123
- 說(shuō)明:
-
(?=.*[a-z]) 表示至少有一個(gè)小寫字母
-
(?=.*[A-Z]) 表示至少有一個(gè)大寫字母
-
(?=.*\d) 表示至少有一個(gè)數(shù)字
-
.{8,} 表示總長(zhǎng)度至少 8 位
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。