iT邦幫忙

2024 iThome 鐵人賽

DAY 24
0
自我挑戰組

python30天入門學習系列 第 24

第24天:正則表達式 part 2

  • 分享至 

  • xImage
  •  

參、常用正則表達式模式

以下是一些常用的正則表達式模式,可以幫助快速匹配各種模式的字符串。

  • \d:匹配一個數字字符,相當於 [0-9]
  • \D:匹配一個非數字字符。
  • \w:匹配一個字母或數字字符,相當於 [a-zA-Z0-9_]
  • \W:匹配一個非字母或數字字符。
  • \s:匹配空白字符(空格、制表符、換行符等)。
  • \S:匹配非空白字符。

一、匹配數字

import re

# 使用 \d 匹配數字
result = re.search("\d+", "今天的日期是2024年")
print(f"找到的數字: {result.group()}")

輸出:

找到的數字: 2024

二、匹配字母和數字

import re

# 使用 \w 匹配字母和數字字符
result = re.search("\w+", "Python 3.10")
print(f"找到的單詞: {result.group()}")

輸出:

找到的單詞: Python

肆、正則表達式的分組

使用括號 () 可以將正則表達式中的一部分分組,這樣可以方便地對匹配的子字符串進行提取。

一、分組示例

import re

# 使用 () 將年、月、日分組
result = re.search(r"(\d{4})-(\d{2})-(\d{2})", "日期是2024-10-03")
if result:
    year, month, day = result.groups()
    print(f"年: {year}, 月: {month}, 日: {day}")

輸出:

年: 2024, 月: 10, 日: 03

伍、替換字符串

re.sub() 用來在字符串中替換符合正則表達式的部分,並返回替換後的結果。

一、替換示例

import re

# 使用 re.sub() 將日期格式從 yyyy-mm-dd 替換為 dd/mm/yyyy
result = re.sub(r"(\d{4})-(\d{2})-(\d{2})", r"\3/\2/\1", "日期是2024-10-03")
print(f"替換後的結果: {result}")

輸出:

替換後的結果: 日期是03/10/2024

陸、使用標誌來調整匹配行為

在正則表達式中可以使用標誌來改變匹配行為,例如忽略大小寫、多行模式等。常用的標誌有:

  • re.IGNORECASEre.I:忽略大小寫。
  • re.MULTILINEre.M:多行模式,^$ 分別匹配每行的開頭和結尾。
  • re.DOTALLre.S:使 . 匹配包括換行符在內的所有字符。

一、忽略大小寫匹配

import re

# 使用 re.IGNORECASE 忽略大小寫匹配
result = re.search("hello", "Hello, world!", re.IGNORECASE)
print(result.group())

輸出:

Hello

上一篇
第23天:正則表達式 part 1
下一篇
第25天:多線程
系列文
python30天入門學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言