正則表達式是一種通用的文本處理工具,可以幫助我們快速、靈活地處理各種文本。Python 作為一門功能強大、易學易用的編程語言,不僅集成了正則表達式模塊,而且還提供了各種字元串、列表、字典等方便處理文本的數據類型和函數庫。
一、正則表達式基礎
正則表達式是由一系列特殊字元和普通字元組成的模式,它可以用來匹配、查找、替換文本中的字元串。以下是一些正則表達式的基本元字元:
. 匹配任意單個字元 \w 匹配任意單詞字元(字母、數字、下劃線) \d 匹配任意數字字元 \s 匹配任意空白字元(包括空格、製表符等) ^ 匹配字元串開頭 $ 匹配字元串結尾
例如,\d{3}
可以匹配一個由三個連續數字字元構成的字元串,[a-z]\w*
可以匹配一個以小寫字母開頭、後面跟著任意單詞字元的字元串。
二、Python中的正則表達式模塊
Python中的正則表達式模塊是 re
,它提供了豐富的功能來處理各種文本操作。以下是一些常用的正則表達式函數:
re.match(pattern, string, flags=0):從字元串開頭匹配正則表達式 re.search(pattern, string, flags=0):在字元串中查找第一個匹配的正則表達式 re.findall(pattern, string, flags=0):查找所有匹配的正則表達式,並以列表形式返回 re.sub(pattern, repl, string, count=0, flags=0):使用指定字元串替換與正則表達式匹配的所有子串
例如,可以使用 re.findall('\d+', text)
查找文本中所有的數字,使用 re.sub('<a.*?>(.*?)</a>', '\1', html)
替換 HTML 中的超鏈接。
三、應用案例
1. 提取網頁中的文章標題
在 HTML 中,網頁標題通常被包含在 <title></title> 標籤中。我們可以使用以下的代碼提取網頁中的文章標題:
import re import requests url = 'https://www.example.com' html = requests.get(url).text pattern = '<title>(.*?)</title>' match = re.search(pattern, html, re.S) if match: print(match.group(1))
該代碼使用 requests 模塊獲取網頁 HTML 源代碼,然後使用正則表達式提取網頁標題。需要注意的是,使用 re.search()
函數時需要指定 re.S
標誌以匹配多行文本。
2. 校驗手機號碼格式
在國內,手機號碼通常是11位數字,以1開頭。為了校驗手機號碼格式是否合法,我們可以使用以下的代碼實現:
import re def is_valid_phone_number(phone_number): pattern = '^1\d{10}$' return bool(re.match(pattern, phone_number))
該函數接受一個手機號碼作為參數,並使用 re.match()
函數判斷是否符合手機號碼的格式。如果符合,則返回 True,否則返回 False。
3. 刪除字元串中的標點符號
有時候我們需要刪除字元串中的標點符號,以進行文本分析或者數據處理的工作。以下的代碼可以刪除字元串中的所有標點符號:
import re def remove_punctuation(text): pattern = r'[^\w\s]+' return re.sub(pattern, '', text)
該函數接受一個字元串作為參數,使用 re.sub()
函數將字元串中的所有標點符號替換為空字元串。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/312973.html