你可以把 Regex 想像成「字串的積木」。下面是最常用、也最值得先熟練的語法。
.任意字元、\d數字、\w英數底線、\s空白+一次以上、*零次以上、?零或一次、{m,n}次數區間^行首、$行尾(做格式驗證必備)[...]字元集合、[^...]反向集合(...)群組、(?P<name>...)命名群組
建議你用「命名群組」
命名群組會讓程式碼可讀性直接上升一個等級:
(?P<year>\d{4}) 比 group(1) 更直觀。import re
line = "2026-02-10 10:12:03 INFO user=jerry id=8511956003"
pat = r"(?P<date>\d{4}-\d{2}-\d{2})\s+(?P<time>\d{2}:\d{2}:\d{2})\s+(?P<level>INFO|WARN|ERROR)\s+user=(?P<user>\w+)\s+id=(?P<id>\d+)"
m = re.search(pat, line)
print(m.group('level'), m.group('user'), m.group('id'))
常見資料清洗:sub 兩個套路
import re
s = "NT$ 1,280"
value = int(re.sub(r"[^0-9]", "", s))
print(value) # 1280
text = "a\t\t b c\n\n d"
print(re.sub(r"\s+", " ", text).strip())