成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

十個案例快速掌握 Python 正則表達式使用

開發
在Python中,通過re模塊可以輕松實現數據清洗、表單驗證、日志分析等任務。本文通過十個實用案例,帶你從零掌握正則表達式的基礎用法!

正則表達式(Regex)是一種強大的文本模式匹配工具,它能讓你用簡潔的語法描述復雜的文本規則。在Python中,通過re模塊可以輕松實現數據清洗、表單驗證、日志分析等任務。本文通過10個實用案例,帶你從零掌握正則表達式的基礎用法!

案例1:匹配純文本

最簡單的正則表達式就是直接匹配文本內容。

import re

text = "Hello, world! Python is amazing."
pattern = r"Python"  # 匹配"Python"字符串

result = re.findall(pattern, text)
print(result)  # 輸出: ['Python']
  • r前綴表示原始字符串,避免轉義問題
  • 字母區分大小寫(默認)
  • findall()返回所有匹配項列表

案例2:匹配任意單個字符

使用.匹配任意單個字符(除換行符外)。

text = "cat bat hat rat"
pattern = r".at"  # 匹配任意"xat"組合

result = re.findall(pattern, text)
print(result)  # 輸出: ['cat', 'bat', 'hat', 'rat']
  • .是通配符,匹配任意字符
  • 常與其他字符組合使用

案例3:匹配字符集合

使用[]匹配指定字符集合中的任一字符。

text = "Apple, Banana, Cherry, Date"
pattern = r"[BCD][a-z]+"  # 匹配以B/C/D開頭的小寫單詞

result = re.findall(pattern, text)
print(result)  # 輸出: ['Banana', 'Cherry', 'Date']
  • [ABC]匹配A、B或C
  • [A-Z]匹配任意大寫字母
  • [a-z]匹配任意小寫字母
  • [0-9]匹配任意數字

案例4:匹配數字字符

\d是匹配數字的快捷方式。

text = "訂單號:12345,金額:¥599.00"
pattern = r"\d+"  # 匹配連續數字

result = re.findall(pattern, text)
print(result)  # 輸出: ['12345', '599', '00']
  • \d等價于[0-9]
  • \d+匹配一個或多個數字
  • \D匹配非數字字符

案例5:匹配空白字符

\s匹配各種空白字符。

text = "Python\tis\nawesome!"
pattern = r"\s"  # 匹配空白字符

result = re.findall(pattern, text)
print(result)  # 輸出: ['\t', '\n', ' ']
  • \s匹配空格、制表符、換行符等
  • \S匹配非空白字符
  • 常用于分割字符串

案例6:驗證郵箱格式

組合使用字符集和量詞驗證郵箱格式。

emails = ["user@example.com", "invalid.email@com", "name@domain.co.uk"]
pattern = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"

for email in emails:
    if re.match(pattern, email):
        print(f"? 有效: {email}")
    else:
        print(f"? 無效: {email}")
  • ^匹配字符串開頭
  • $匹配字符串結尾
  • +表示一個或多個
  • {2,}表示至少2個字符

案例7:提取URL鏈接

匹配網頁中的URL鏈接。

html = '<a >主頁</a> <img src="image.png">'
pattern = r'href="(https?://[^"]+)"'  # 提取href屬性中的URL

result = re.findall(pattern, html)
print(result)  # 輸出: ['https://example.com']
  • https?匹配"http"或"https"
  • [^"]+匹配除"外的任意字符
  • ()捕獲組提取特定部分

案例8:匹配日期格式

識別不同格式的日期。

dates = "2023-08-15, 15/08/2023, Aug 15 2023"
pattern = r"\d{4}-\d{2}-\d{2}|\d{2}/\d{2}/\d{4}|[A-Za-z]{3} \d{2} \d{4}"

result = re.findall(pattern, dates)
print(result)  # 輸出: ['2023-08-15', '15/08/2023', 'Aug 15 2023']
  • |表示"或"關系
  • {4}精確匹配4個字符
  • [A-Za-z]{3}匹配3個字母

案例9:提取電話號碼

提取不同格式的電話號碼。

text = "聯系:138-1234-5678 或 (021) 8765-4321"
pattern = r"\(?\d{2,4}\)?[- ]?\d{4}[- ]?\d{4}"

result = re.findall(pattern, text)
print(result)  # 輸出: ['138-1234-5678', '(021) 8765-4321']
  • \(?匹配0個或1個左括號
  • \)?匹配0個或1個右括號
  • [- ]?匹配可選的分隔符

案例10:替換敏感信息

使用正則表達式進行文本替換。

text = "Visa: 4111-1111-1111-1111, 電話:13800138000"
pattern_card = r"\d{4}-\d{4}-\d{4}-\d{4}"
pattern_phone = r"1[3-9]\d{9}"

# 替換敏感信息
result = re.sub(pattern_card, "[信用卡號已屏蔽]", text)
result = re.sub(pattern_phone, "[手機號已屏蔽]", result)

print(result)
# 輸出: Visa: [信用卡號已屏蔽], 電話:[手機號已屏蔽]
  • re.sub()實現替換功能
  • 1[3-9]\d{9}匹配中國大陸手機號
  • 常用作數據脫敏處理

結語:掌握正則表達式的核心思維

通過這10個案例,你已經掌握了正則表達式的基礎用法:

  • 模式思維:用抽象模式描述具體文本
  • 組合思維:將簡單模式組合成復雜規則
  • 實踐思維:在真實場景中不斷練習

進階建議:

  • 使用regex101.com在線測試工具
  • 學習貪婪/非貪婪匹配、零寬斷言等高級特性
  • 結合Pandas處理結構化文本數據

正則表達式就像編程世界的超級放大鏡,讓你在文本的海洋中精準捕捉目標信息!

責任編輯:趙寧寧 來源: Python數智工坊
相關推薦

2024-09-14 09:18:14

Python正則表達式

2025-04-14 08:40:00

Python正則表達式re 庫

2016-09-12 09:57:08

grep命令表達式Linux

2025-03-27 10:03:17

PythonPandas代碼

2020-03-30 11:25:16

Linux 開源操作系統

2010-03-25 18:25:36

Python正則表達式

2017-08-10 13:13:44

Linux正則表達式

2021-01-27 11:34:19

Python正則表達式字符串

2019-05-21 10:42:41

Python正則表達式

2024-12-16 07:33:45

C#正則表達式

2009-09-16 17:29:30

正則表達式使用詳解

2018-09-27 15:25:08

正則表達式前端

2020-09-04 09:16:04

Python正則表達式虛擬機

2021-01-21 10:40:10

Python正則表達式代碼

2024-10-09 16:35:20

Python正則表達式

2023-10-07 08:25:09

Java處理工具正則表達式

2010-03-01 15:51:59

Python則表達式

2010-03-11 08:55:45

python正則表達式

2019-12-10 10:40:57

Python正則表達式編程語言

2020-09-18 06:42:14

正則表達式程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲免费毛片 | 久久久国产视频 | 久久久国产精品入口麻豆 | 日韩成人精品 | 亚洲精品视频在线看 | 色综合天天天天做夜夜夜夜做 | 日韩av免费看 | 日韩中文字幕在线观看 | 中文字幕av在线播放 | 成人午夜在线 | 亚洲欧美日韩网站 | 一级特黄a大片 | 国产一区91在线 | 国产精品久久久久999 | 免费看国产片在线观看 | 欧美freesex黑人又粗又大 | 日韩国产在线 | 国产福利91精品一区二区三区 | 高清久久| 日本a级大片| 精品欧美一区免费观看α√ | 久久久久久av| 亚洲精品乱码 | 久久日韩粉嫩一区二区三区 | 亚洲国产一区二区三区 | 精品一区二区免费视频 | 日本一二区视频 | 亚洲视频中文字幕 | 在线视频成人 | 亚洲三区在线观看 | 久久人人爽人人爽 | 91免费在线| 国产福利资源在线 | 我想看一级黄色毛片 | 精品国产第一区二区三区 | 成人国产精品色哟哟 | 精品三级在线观看 | 91久久精品视频 | 日韩一级免费大片 | 亚洲精品福利视频 | 国产成人精品一区二区 |