正則表達式(Regular Expression,簡稱Regex)是編程中一種富強的文本處理東西,它容許開辟者定義一組規矩,以便於疾速查找、婚配或處理字符串。控制正則表達式,意味着可能愈加高效地處理各種數據挑選成績。本文將具體介紹正則表達式的基本知識、常用語法以及在現實利用中的技能。
一、正則表達式基本
1.1 正則表達式定義
正則表達式是一種用於描述字符組合的語法則矩。它由一系列字符跟特別標記構成,表示一種婚配規矩。經由過程正則表達式,我們可能實現文本的查抄、調換、驗證等操縱。
1.2 常用語法
- 字符婚配:利用方括號
[ ]
表示一個字符湊集,如[abc]
婚配 a、b 或 c;利用[^ ]
表示一個反向字符湊集,即婚配不在括號內的任何字符,如[^abc]
婚配除 a、b 跟 c 以外的字符。 - 量詞:用於指定婚配的次數:
*
:婚配前面的子表達式零次或多次;+
:婚配前面的子表達式一次或多次;?
:婚配前面的子表達式零次或一次;n
:婚配前面的子表達式剛好 n 次;n,
:婚配前面的子表達式至少 n 次。
- 定位符:用於指定婚配的地位:
^
:婚配輸入字符串的開端地位;$
:婚配輸入字符串的結束地位;.
:婚配除換行符以外的咨意字符;[^...]
:婚配不在括號內的咨意字符(否定字符類)。
1.3 元字符
.
:婚配咨意字符,除了換行符;*
:婚配前面的子表達式零次或多次;+
:婚配前面的子表達式一次或多次;?
:婚配前面的子表達式零次或一次;n
:婚配前面的子表達式剛好 n 次;n,
:婚配前面的子表達式至少 n 次;n,m
:婚配前面的子表達式至少 n 次,但不超越 m 次;[a-z]
:婚配咨意小寫字母;[0-9]
:婚配咨意數字。
二、正則表達式利用
2.1 數據清洗
利用正則表達式可能疾速清理數據,如去除空格、特別字符等。
import re
text = "This is a sample text! It contains some special characters: @#&"
cleantext = re.sub(r"[a-zA-Z0-9s]", "", text)
print(cleantext) # 輸出: This is a sample text It contains some special characters
2.2 數據提取
正則表達式可能用於提取文本中的特定信息,如電子郵件地點、德律風號碼等。
import re
text = "Contact me at example@example.com or call me at 86-1234567890."
email = re.findall(r"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+", text)
phone = re.findall(r"\b\d{3}-\d{3}-\d{4}\b", text)
print(email) # 輸出: ['example@example.com']
print(phone) # 輸出: ['86-123-456-7890']
2.3 數據調換
正則表達式可能用於批量調換文本中的特定字符串。
import re
text = "The color of the sky is blue."
new_text = re.sub(r"blue", "red", text)
print(new_text) # 輸出: The color of the sky is red.
三、總結
正則表達式是一種富強的文本處理東西,控制正則表達式的基本知識對打算機編程跟數據處理非常重要。經由過程本文的介紹,信賴讀者曾經對正則表達式有了開端的懂得。在現實利用中,正則表達式可能幫助我們更高效地處理各種數據挑選成績,進步編程效力。