[Python]Re正則表達式中常用符號的重點整理

更新於 發佈於 閱讀時間約 4 分鐘

當使用正則表達式(Regular Expressions, Regex)時,不同的符號和構造具有特定的含義,這些符號和模式可以用來構建靈活且強大的文本匹配規則。


以下是正則表達式中常用符號的重點整理:

字元類別 (Character Classes)

  • [abc]: 匹配 abc 中的任何一個字符。
  • [^abc]: 匹配除了 abc 之外的任何字符(否定字符集)。
  • [a-z]: 匹配任意小寫字母(a到z)。
  • [A-Z]: 匹配任意大寫字母(A到Z)。
  • [0-9]: 匹配任意數字(0到9)。
  • [a-zA-Z0-9_]: 匹配任意字母、數字或下劃線(單詞字符)。
  • \d: 匹配任意數字,等同於 [0-9]
  • \D: 匹配任意非數字字符,等同於 [^0-9]
  • \w: 匹配任意單詞字符(字母、數字或下劃線),等同於 [a-zA-Z0-9_]
  • \W: 匹配任意非單詞字符,等同於 [^a-zA-Z0-9_]
  • \s: 匹配任意空白字符(空格、Tab、換行等),等同於 [ \t\n\r\f\v]
  • \S: 匹配任意非空白字符,等同於 [^ \t\n\r\f\v]
  • .: 匹配除換行符外的任何單個字符。

量詞 (Quantifiers)

  • *: 匹配前面的元素0次或多次(零個或多個)。
  • +: 匹配前面的元素1次或多次(至少一個)。
  • ?: 匹配前面的元素0次或1次(可選)。
  • {n}: 精確匹配前面的元素 n 次。
  • {n,}: 匹配前面的元素至少 n 次。
  • {n,m}: 匹配前面的元素至少 n 次,最多 m 次。

位置匹配符號 (Anchors)

  • ^: 匹配字符串的開頭。
  • $: 匹配字符串的結尾。
  • \b: 匹配單詞邊界(單詞的開始或結束)。
  • \B: 匹配非單詞邊界。

分組和引用 (Grouping and References)

  • (...): 分組,將正則表達式的一部分包起來,並將其視為一個單位。分組的部分可以被捕獲和引用。
  • (?:...): 非捕獲組,分組但不存儲匹配結果。
  • \1, \2, ...: 捕獲組的反向引用,匹配先前分組中捕獲的內容。

特殊字符 (Special Characters) 的轉義

  • \: 用來轉義正則表達式中的特殊字符(如 .*+?^$ 等),使它們作為普通字符處理。

選擇符 (Alternation)

  • |: 表示邏輯 "或",例如 a|b 匹配 ab

特殊語法 (Special Constructs)

  • (?i): 使匹配忽略大小寫。
  • (?m): 多行模式,使 ^$ 匹配每一行的開頭和結尾。
  • (?s): 使 . 匹配所有字符,包括換行符。
  • (?=...): 正向先行斷言,要求在此位置後面的字符串與括號內的模式匹配,但不消耗字符。
  • (?!...): 負向先行斷言,要求在此位置後面的字符串不匹配括號內的模式。
  • (?<=...): 正向後行斷言,要求在此位置前面的字符串與括號內的模式匹配,但不消耗字符。
  • (?<!...): 負向後行斷言,要求在此位置前面的字符串不匹配括號內的模式。

貪婪與非貪婪匹配 (Greedy vs Non-Greedy Matching)

  • .*: 貪婪匹配,匹配儘可能多的字符。
  • .*?: 非貪婪匹配,匹配儘可能少的字符。


範例

數字匹配(包括小數)

number_pattern = r'[-+]?\d*\.?\d+'
  • [-+]?: 匹配可選的正號 (+) 或負號 (-)。
  • \d*: 匹配零個或多個數字,代表小數點前的整數部分。
  • \.?: 匹配可選的小數點 (.)。
  • \d+: 匹配一個或多個數字,代表小數部分或整數部分。
number_pattern = r'[-+]?\d*\.?\d+'
number = "-123.45"
number_match = re.match(number_pattern, number)

if number_match:
    print("數字匹配結果:", number_match.group()) #輸出 數字匹配結果: -123.45

除了正則表達式(regex),還有一些其他方法可以用來處理字符串匹配、查找和替換的任務。

String Methods

Pandas

List Comprehensions

String Templates

但在處理複雜模式匹配時,re正則表達式還是很好用的工具可以客製


留言
avatar-img
留言分享你的想法!
螃蟹_crab-avatar-img
發文者
2024/08/19
[Python]幾種去除字串中的空白字元的方法提及了這篇文章,趕快過去看看吧!
avatar-img
螃蟹_crab的沙龍
149會員
284內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。 興趣是攝影,踏青,探索未知領域。 人生就是不斷的挑戰及自我認清,希望老了躺在床上不會後悔自己什麼都沒做。
螃蟹_crab的沙龍的其他內容
2025/04/29
1. 什麼是虛擬環境 (venv)? 虛擬環境就是讓你在同一台電腦上,可以為不同的專案建立「獨立」的 Python 環境,互不干擾。 例如:某個專案用 Dash 3.0.4,另一個用 Dash 4.0,不會互相影響。 2. 如何建立一個新的 venv? 打開終端機 Terminal / C
Thumbnail
2025/04/29
1. 什麼是虛擬環境 (venv)? 虛擬環境就是讓你在同一台電腦上,可以為不同的專案建立「獨立」的 Python 環境,互不干擾。 例如:某個專案用 Dash 3.0.4,另一個用 Dash 4.0,不會互相影響。 2. 如何建立一個新的 venv? 打開終端機 Terminal / C
Thumbnail
2025/04/25
在 Python 中,字典(dict)是非常常用的資料結構,用來儲存 key-value 配對。而在操作字典時,.setdefault() 是一個常被忽略但非常實用的方法。 這篇文章會完整介紹 .setdefault() 的語法、用途、與實務範例,幫助你更有效率地處理字典資料。 什麼是 .se
Thumbnail
2025/04/25
在 Python 中,字典(dict)是非常常用的資料結構,用來儲存 key-value 配對。而在操作字典時,.setdefault() 是一個常被忽略但非常實用的方法。 這篇文章會完整介紹 .setdefault() 的語法、用途、與實務範例,幫助你更有效率地處理字典資料。 什麼是 .se
Thumbnail
2025/04/15
在軟體開發或部署過程中,我們經常需要對多個 .ini 設定檔進行批次修改,例如將某個舊的參數名稱或路徑名稱,替換成新的命名。 這就像記事本的「全部取代」功能,但你不需要一個個打開檔案慢慢點——你可以用 Python 自動完成這些事! 本文將介紹一個 Python 函式:search_and_re
2025/04/15
在軟體開發或部署過程中,我們經常需要對多個 .ini 設定檔進行批次修改,例如將某個舊的參數名稱或路徑名稱,替換成新的命名。 這就像記事本的「全部取代」功能,但你不需要一個個打開檔案慢慢點——你可以用 Python 自動完成這些事! 本文將介紹一個 Python 函式:search_and_re
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
本文介紹了在進行資料分析時,將類別欄位轉換為數值欄位的方法,包括Label Encoding、One-Hot Encoding、Binary Encoding、Target Encoding和Frequency Encoding。每種方法的應用範例、優缺點和適用場景都有詳細說明。
Thumbnail
本文介紹了在進行資料分析時,將類別欄位轉換為數值欄位的方法,包括Label Encoding、One-Hot Encoding、Binary Encoding、Target Encoding和Frequency Encoding。每種方法的應用範例、優缺點和適用場景都有詳細說明。
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
高中數學主題練習—根式化簡
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
這邊統整了所有過去發表過關於 QUERY 函式的教學分享,希望可以方便你按照順序閱讀和練習。 QUERY 可以用來查詢、篩選、聚集、排序資料,還可以做張簡易的資料透視表,是我在 Google 試算表上做數據分析、製作報告、製作儀表板時最常用的函式之一,既方便又好用,誠心推薦!
Thumbnail
這邊統整了所有過去發表過關於 QUERY 函式的教學分享,希望可以方便你按照順序閱讀和練習。 QUERY 可以用來查詢、篩選、聚集、排序資料,還可以做張簡易的資料透視表,是我在 Google 試算表上做數據分析、製作報告、製作儀表板時最常用的函式之一,既方便又好用,誠心推薦!
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
Thumbnail
邏輯運算子 它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程 在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News