正則1 概述及匹配單個字符,匹配多個字符

正則表達式概述
re模塊操作
匹配單個字符
匹配多個字符

正則表達式概述

  • 正則表達式,又稱規則表達式。計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。

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())

.+與.*類似,但.+必須有內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章