正則表達式概述
- 正則表達式,又稱規則表達式。計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。
re模塊操作
導入re模塊
import re
使用match方法進行匹配操作(返回一個對象)
result = re.match(正則表達式,要匹配的字符串)
最簡單的匹配
import re
result = re.match(r"hello","hello world")
print (result.group())
對象的group方法提取數據
result.group()
匹配單個字符
字符 | 功能 |
---|---|
. | 匹配任意1個字符(除了\n) |
[] | 匹配[]中列舉的字符 |
\d | 匹配數字0-9 |
\D | \d的相反面,即非數字0-9 |
\s | 匹配空格,tab鍵 |
\S | \s的相反面 |
\w | 匹配單詞字符,即0-9,a-z,A-Z _ |
\W | \w的相反面 匹配非0-9,a-z,A-Z _ |
示例:(看代碼中的正則即可)
匹配hello 不論大小寫([ ]使用)
import re
result = re.match(r"[hH]ello","hello")
print (result.group())
匹配速度與激情1-3 6-8部([ ]使用)
import re
result = re.match(r"速度與激情[1-36-8]","速度與激情1") //這裏修改數字
print (result.group())
在匹配的字符串內改數字1-8.
所有的大學字母正好是小寫字母的相反
匹配多個字符
字符 | 功能 |
---|---|
* | 匹配一個字符出現0次或者無限次,即可有可無 |
+ | 匹配一個字符出現1次或者無限次,即至少有一次 |
? | 匹配前一個字符出現1次或者0次,即要麼有1次,要麼沒有 |
{m} | 匹配前一個字符出現m次 |
{m,n} | 匹配前一個字符出現從m到n次 |
示例:(看代碼中的正則即可)
如果速度與激情有兩位數以上的部數({ }使用)
import re
result = re.match(r"速度與激情\d{1,2}","速度與激情12") //這裏修改數字
print (result.group())
一串11位數字電話號碼({ }使用)
import re
result = re.match(r"\d{11}","12345678901")
print (result.group())
有些電話號碼中間有-,有些電話號碼沒有(?使用)
import re
result = re.match(r"\d{3}-?\d{8}","12345678901")
print (result.group())
?前面的東西是可有可無的
文本的所有內容(.*可以匹配所有內容(可以沒有內容) 但不包括\n)
import re
result = re.match(r".*","ddddd")
print (result.group())
升級版 把\n也匹配出來
import re
result = re.match(r".*","ddddd\nxxxxx",re.S)
print (result.group())
.+與.*類似,但.+必須有內容