正則表達(dá)式

1. 匹配單個(gè)字符

代碼 功能說(shuō)明 示例 匹配結(jié)果說(shuō)明
. 匹配任意一個(gè)字符(除了換行符 \n a.c 匹配 abc, a@c, a c,但不匹配 acabbc
[ ] 匹配括號(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 匹配 colorcolour,但不能匹配 colooor
{m} 匹配前一個(gè)字符出現(xiàn) 恰好 m 次 \d{3} 匹配三位數(shù)字,如 123,但不匹配 121234
{m,n} 匹配前一個(gè)字符出現(xiàn) 從 m 到 n 次 \d{2,5} 可以匹配 12, 123, 12345,但不匹配 1123456

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ù)
  • 更多綜合實(shí)例

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=["'](.*?)["']>
  • 示例文本:

    html深色版本

    <a >點(diǎn)擊這里</a>
    
  • 提取內(nèi)容:https://example.com

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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是正則表達(dá)式: 通俗理解:按照一定的規(guī)則,從某個(gè)字符串中匹配出想要的數(shù)據(jù)。這個(gè)規(guī)則就是正則表達(dá)式。 標(biāo)準(zhǔn)答案:...
    af9f873c915c閱讀 284評(píng)論 0 0
  • 正則表達(dá)式 有的人遇到問(wèn)題說(shuō),“這個(gè)我知道用正則表達(dá)式解決?!苯Y(jié)果出現(xiàn)了兩個(gè)問(wèn)題。逆著木頭紋理切割需要更大力氣,當(dāng)...
    伍帆閱讀 224評(píng)論 0 0
  • 點(diǎn)(.)匹配任意的字符: text = "ab"ret = re.match('.',text)print(ret...
    140923閱讀 326評(píng)論 0 0
  • 正則表達(dá)式和re模塊: 什么是正則表達(dá)式: 通俗理解:按照一定的規(guī)則,從某個(gè)字符串中匹配出想要的數(shù)據(jù)。這個(gè)規(guī)則就是...
    徐弱西閱讀 432評(píng)論 0 0
  • 正則表達(dá)式是是計(jì)算機(jī)科學(xué)的一個(gè)概念,使用單個(gè)字符串來(lái)描述,用來(lái)檢索、替換符合某個(gè)模式的文本。許多程序設(shè)計(jì)語(yǔ)言都支持...
    飛魚灣閱讀 445評(píng)論 0 1

友情鏈接更多精彩內(nèi)容