字符串相關函數(shù)
*capitalize 字符串首字母大寫
*title 每個單詞的首字母大寫
*upper 將所有字母變成大寫
*lower 將所有字母變成小寫
*swapcase 大小寫互換
*len 計算字符串的長度
*count 統(tǒng)計字符串中某個元素的數(shù)量
*find 查找某個字符串第一次出現(xiàn)的索引位置
*index 與 find 功能相同 find找不到返回-1,index找不到數(shù)據直接報錯
*startswith 判斷是否以某個字符或字符串為開頭
*endswith 判斷是否以某個字符或字符串結尾
*isupper 判斷字符串是否都是大寫字母
*islower 判斷字符串是否都是小寫字母
istitle 判斷字符串是否每個單詞都首字母大寫
isalnum 判斷字符串是否是由數(shù)字、字母、漢字組成
*isalpha 判斷字符串是否由字母和文字組成
*isdigit 檢測字符串數(shù)是數(shù)字組成 接受二進制字節(jié)流
*isdecimal 檢測字符串是否以數(shù)字組成 必須是純數(shù)字
isnumeric 檢測字符串是否以數(shù)字組成 接受中文"四"
isspace 判斷字符串是否由空白符組成
*split 按某字符將字符串分割成列表(默認字符是空格)
*join 按某字符將列表拼接成字符串(容器類型都可)
splitlines 按換行來進行切分(\n)
zfill 填充字符串(默認填充0,原字符串右對齊)
ljust 填充字符串,原字符居左 (默認填充空格)
rjust 填充字符串,原字符居右 (默認填充空格)
*center 填充字符串,原字符居中 (默認填充空格)
*strip 默認去掉首尾兩邊的空白符
rstrip 去掉右邊某個字符
lstrip 去掉左邊某個字符

創(chuàng)新互聯(lián)公司專注于巴里坤哈薩克網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供巴里坤哈薩克營銷型網站建設,巴里坤哈薩克網站制作、巴里坤哈薩克網頁設計、巴里坤哈薩克網站官網定制、重慶小程序開發(fā)服務,打造巴里坤哈薩克網絡公司原創(chuàng)品牌,更為您提供巴里坤哈薩克網站排名全網營銷落地服務。
replace()
功能: 把字符串的舊字符換成新字符
格式: 字符串.replace('舊字符','新字符'[, 限制替換的次數(shù)])
返回值: 替換之后的字符串
maketrans translate 是一對
maketrans()
功能: 制作用于字符串替換的映射表
格式: 字符串.maketrans('查找字符','替換字符')兩個字符必須長度相等
返回值: 字典
translate()
功能: 進行字符串替換操作
格式: 字符串.translate(maketrans返回的字典)
返回值: 替換之后的字符串
列表的相關函數(shù)
append()
功能:向列表的末尾添加新的元素
格式:列表.append(值)
返回值:None
注意:新添加的值在列表的末尾,該函數(shù)直接操作原有列表
insert()
功能:在指定索引之前插入元素
格式:列表.insert(索引,值)
返回值:None
注意:直接改變原有列表
extend()
功能:迭代追加所有元素
格式:列表.extend(可迭代性數(shù)據)
返回值:None
注意:直接改變原有列表
pop()
功能:通過指定索引刪除元素,若沒有索引移除最后那個
格式:列表.pop(索引)
返回值:刪除的元素
(注意:沒有指定索引,默認移除最后一個元素 )
remove()
功能:通過給予的值來刪除,如果多個相同元素,默認刪除第一個
格式:列表.remove(值)
返回值:無
(注意:如果有索引的情況推薦使用pop,效率高于remove)
clear()
功能:清空列表
格式:列表.clear()
返回值:空列表
index()
功能:獲取某個值在列表中的索引
格式:列表.index(值[,start][,end]) # [] 表達參數(shù)可選項
返回值:找到返回索引 (找不到報錯)
count()
功能:計算某個元素出現(xiàn)的次數(shù)
格式:列表.count(值)
返回值:次數(shù)
sort()
功能:列表排序(默認小到大排序)
格式:列表.sort(reverse=False)
返回值:None
注意:直接更改原列表
reverse()
功能:列表反轉操作
格式:列表.reverse()
返回值:None
注意:直接更改原列表
深拷貝淺拷貝
copy模塊中有 淺拷貝 和 深拷貝 兩種方法
(1)淺拷貝: 淺拷貝只拷貝外層列表 內層列表跟隨原列表進行改變
淺拷貝copy.copy(listvar) 或者 listvar.copy()
(2)深拷貝: 拷貝整個列表 內外列表都不跟隨原列表進行改變
深拷貝copy.deepcopy(listvar)
注意:copy模塊的copy方法 和 python內置的函數(shù)copy一樣 都是淺拷貝
元組相關操作和方法
元組的相關操作除了不能修改和刪除其中的元素之外 , 剩下操作都和列表相同.
元組里面能用的方法只有 index 和 count
字典的相關函數(shù)
fromkeys() 使用一組鍵和默認值創(chuàng)建字典
pop() 通過鍵去刪除鍵值對 (若沒有該鍵可設置默認值,預防報錯)
popitem() 刪除最后一個鍵值對
clear() 清空字典
update() 批量更新(有該鍵就更新,沒該鍵就添加)
get() 通過鍵獲取值(若沒有該鍵可設置默認值,預防報錯)
keys() 將字典的鍵組成新的可迭代對象
values() 將字典中的值組成新的可迭代對象
items() 將字典的鍵值對湊成一個個元組,組成新的可迭代對象
集合中的交差并補
intersection() 交集
difference() 差集
union() 并集
symmetric_difference() 對稱差集 (補集情況涵蓋在其中)
issubset() 判斷是否是子集
issuperset() 判斷是否是父集
isdisjoint() 檢測兩集合是否不相交 不相交 True 相交False
集合相關的函數(shù)
add() 向集合中添加數(shù)據
update() 迭代著增加
clear() 清空集合
pop() 隨機刪除集合中的一個數(shù)據
remove() 刪除集合中指定的值(不存在則報錯)
discard() 刪除集合中指定的值(不存在的不刪除 推薦使用)
冰凍集合
frozenset 可強轉容器類型數(shù)據變?yōu)楸鶅黾?/span>
冰凍集合一旦創(chuàng)建,不能在進行任何修改,只能做交叉并補操作
文件操作
打開模式
w write 寫入模式
文件不存在則創(chuàng)建文件,存在的話則打開清空內容,并且將文件指針放在文件的開頭
r read 讀取模式
文件不存在則報錯! 存在的話則打開文件,并且將文件指針放在文件的開頭
a append 追加模式
文件不存在則創(chuàng)建文件,存在的話則打開文件,*并且將文件指針放在文件的末尾*
x xor 異或模式
文件已存在則報錯! 不存在的話則創(chuàng)建文件,將文件指針放在文件的開頭
擴展模式 (配合打開模式的輔助模式,自己單獨不能使用)
+ plus 增強模式(可以讓文件具有讀寫功能)
b bytes bytes模式(二進制字節(jié)流)
模式一共16種
w,w+,wb,wb+
r,r+,rb,rb+
a,a+,ab,ab+
x,x+,xb,xb+
將字符串和字節(jié)流(Bytes流)類型進行轉換 (參數(shù)寫成轉化的字符編碼格式)
encode() 編碼 將字符串轉化為字節(jié)流(Bytes流)
decode() 解碼 將Bytes流轉化為字符串
(utf-8編碼格式下 默認一個中文三個字節(jié) 一個英文或符號 占用一個字節(jié))
read() 功能: 讀取字符的個數(shù)(里面的參數(shù)代表字符個數(shù))
seek() 功能: 調整指針的位置(里面的參數(shù)代表字節(jié)個數(shù))
tell() 功能: 當前光標左側所有的字節(jié)數(shù)(返回字節(jié)數(shù))
文件相關函數(shù)
readline() 功能: 讀取一行文件內容
readlines() 功能:將文件中的內容按照換行讀取到列表當中
writelines() 功能:將內容是字符串的可迭代性數(shù)據寫入文件中 參數(shù):內容為字符串類型的可迭代數(shù)據
truncate() 功能: 把要截取的字符串提取出來,然后清空內容將提取的字符串重新寫入文件中 (字節(jié))
readable() 功能: 判斷文件對象是否可讀
writable() 功能: 判斷文件對象是否可寫
函數(shù)
____doc____
__doc__或者help查看文檔
return
return返回值
為這個函數(shù)返回一個結果 (return返回值可有可無 按照需求選擇)
注意:執(zhí)行return語句之后,函數(shù)執(zhí)行結束
內置函數(shù)
abs 絕對值函數(shù)
round 四舍五入 (n.5 n為偶數(shù)則舍去 n.5 n為奇數(shù),則進一!)
sum 計算一個序列得和
max 獲取一個序列里邊的最大值
min 獲取一個序列里邊的最小值
pow 計算某個數(shù)值的x次方
range 產生指定范圍數(shù)據的可迭代對象
bin 將10進制數(shù)據轉化為二進制
oct 將10進制數(shù)據轉化為八進制
hex 將10進制數(shù)據轉化為16進制
chr 將ASCII編碼轉換為字符
ord 將字符轉換為ASCII編碼
eval 將字符串當作python代碼執(zhí)行
eval 將字符串當作python代碼執(zhí)行(功能更強大)
repr 不轉義字符輸出字符串
input 接受輸入字符串
hash 生成哈希值
全局變量 與 局部變量 及 其關鍵字的使用
globals() :返回字典,存放著全局作用域所有內容
locals() :返回字典,當前作用域所有內容(locals調用之前的變量)
global :關鍵字:聲明全局變量獲修改全局變量
nonlocal :關鍵字:修改局部變量(當前函數(shù)上一層的局部變量)
匿名函數(shù)
lambda 函數(shù)表達式: 只實現(xiàn)一些簡單的函數(shù)功能,但是寫法非常簡便
高階函數(shù)
高階函數(shù):能夠把函數(shù)當成參數(shù)傳遞的就是高階函數(shù)
map
map(func,iterable)
功能:
把iterable里面所有數(shù)據 一一的放進到func這個函數(shù)中進行操作 ,把結果扔進迭代器
參數(shù):
func 內置或自定義函數(shù)
iterable 具有可迭代性的數(shù)據 ([迭代器],[容器類型的數(shù)據],[range對象])
返回值:
返回最后的迭代器
reduce
reduce(func,iterable)
功能:
先把iterable里面的前2個數(shù)據拿到func函數(shù)當中進行運算,得到結果,
在把計算的結果和iterable中的第三個數(shù)據拿到func里面進行運算,
依次類推 ,直到iterable里面的所有數(shù)據都拿完為止,程序結束
參數(shù):
func 內置或自定義函數(shù)
iterable 具有可迭代性的數(shù)據 ([迭代器],[容器類型的數(shù)據],[range對象])
返回值:
計算的最后結果
sorted
sorted(iterable,reverse=False,key=函數(shù))
功能:
對數(shù)據進行排序
參數(shù):
iterable : 具有可迭代性的數(shù)據(迭代器,容器類型數(shù)據,可迭代對象)
reverse : 是否反轉 默認為False 代表正序, 改成True 為倒序
key : 指定函數(shù) 內置或自定義函數(shù)
返回值:
返回排序后的數(shù)據
filter
filter(func,iterable)
功能:
用來過濾的,如果func函數(shù)中返回True , 會將這個值保留到迭代器中
如果func函數(shù)中返回False , 會將此值舍棄不保留
參數(shù):
func : 自定義函數(shù)
iterable : 具有可迭代性的數(shù)據(迭代器,容器類型數(shù)據,可迭代對象)
返回值:
返回處理后的迭代器
列表推導式,集合推導式,字典推導式的相關寫法
(1)enumerate
enumerate(iterable,[start=0])
功能:枚舉 ; 將索引號和iterable中的值,一個一個拿出來配對組成元組,通過迭代器返回
參數(shù):
iterable: 可迭代性數(shù)據 (常用:迭代器,容器類型數(shù)據,可迭代對象range)
start: 可以選擇開始的索引號(默認從0開始索引)
返回值:迭代器
(2)zip
zip(iterable, ... ...)
功能: 將多個iterable中的值,一個一個拿出來配對組成元組,通過迭代器返回
iterable: 可迭代性數(shù)據 (常用:迭代器,容器類型數(shù)據,可迭代對象range)
返回: 迭代器
生成器send 與 yield from
send
next和send區(qū)別:
next 只能取值
send 不但能取值,還能發(fā)送值
send注意點:
第一個 send 不能給 yield 傳值 默認只能寫None
最后一個yield 接受不到send的發(fā)送值
yield from : 將一個可迭代對象變成一個迭代器返回
yield from : 將一個可迭代對象變成一個迭代器返回
序列化模塊-pickle
dumps 把任意對象序列化成一個bytes
loads 把任意bytes反序列化成原來數(shù)據
dump 把對象序列化后寫入到file-like Object(即文件對象)
load 把file-like Object(即文件對象)中的內容拿出來,反序列化成原來數(shù)據
數(shù)學模塊-math
ceil() 向上取整操作 (對比內置round)
floor() 向下取整操作 (對比內置round)
pow() 計算一個數(shù)值的N次方(結果為浮點數(shù)) (對比內置pow)
sqrt() 開平方運算(結果浮點數(shù))
fabs() 計算一個數(shù)值的絕對值 (結果浮點數(shù)) (對比內置abs)
modf() 將一個數(shù)值拆分為整數(shù)和小數(shù)兩部分組成元組
copysign() 將參數(shù)第二個數(shù)值的正負號拷貝給第一個 (返回一個小數(shù))
fsum() 將一個容器數(shù)據中的數(shù)據進行求和運算 (結果浮點數(shù))(對比內置sum)
圓周率常數(shù) pi
隨機模塊-random
random() 獲取隨機0-1之間的小數(shù)(左閉右開)
randrange() 隨機獲取指定范圍內的整數(shù)(包含開始值,不包含結束值,間隔值)
randint() 隨機產生指定范圍內的隨機整數(shù)
uniform() 獲取指定范圍內的隨機小數(shù)(左閉右開)
choice() 隨機獲取序列中的值(多選一)
sample() 隨機獲取序列中的值(多選多) [返回列表]
shuffle() 隨機打亂序列中的值(直接打亂原序列)
時間模塊-time
time() 獲取本地時間戳
ctime() 獲取本地時間字符串(參數(shù)是時間戳,默認當前)
localtime() 獲取本地時間元組 (參數(shù)是時間戳,默認當前)
mktime() 通過時間元組獲取時間戳 (參數(shù)是時間元組)
asctime() 通過時間元組獲取時間字符串(參數(shù)是時間元組)
sleep() 程序睡眠等待
strftime() 格式化時間字符串(格式化字符串,時間元祖)
strptime() 將時間字符串通過指定格式提取到時間元組中(時間字符串,格式化字符串)
perf_counter() 用于計算程序運行的時間
格式化時間字符串
格式 含義 %a 本地(locale)簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化月份名稱
%B 本地完整月份名稱
%c 本地相應的日期和時間表示
%d 一個月中的第幾天(01 - 31)
%H 一天中的第幾個小時(24 小時制,00 - 23)
%I 一天中的第幾個小時(12 小時制,01 - 12)
%j 一年中的第幾天(001 - 366)
%m 月份(01 - 12) %M 分鐘數(shù)(00 - 59)
%p 本地 am 或者 pm 的相應符
%S 秒(01 - 61)
%U 一年中的星期數(shù)(00 - 53 星期天是一個星期的開始)第一個星期天之前的所有天數(shù)都放在第 0 周
%w 一個星期中的第幾天(0 - 6,0 是星期天) %W 和 %U 基本相同,不同的是 %W 以星期一為一個星期的開始
%X 本地相應時間
%y 去掉世紀的年份(00 - 99)
%Y 完整的年份
%z 用 +HHMM 或 -HHMM 表示距離格林威治的時區(qū)偏移(H 代表十進制的小時數(shù),M 代表十進制的分鐘數(shù))
%% %號本身
不常用的屬性函數(shù)(了解)
*gmtime() 獲取UTC時間元祖(世界標準時間)
*time.timezone 獲取當前時區(qū)(時區(qū)的時間差)
*time.altzone 獲取當前時區(qū)(夏令時)
*time.daylight 獲取夏令時狀態(tài)
日歷模塊-calendar(了解內容)
calendar() 獲取指定年份的日歷字符串 (年份,w日期間的寬度,l日期間的高度,c月份間的間距,m一行顯示幾個月)
calendar.calendar(2018,w=2,l=2,c=20,m=1)
month() 獲取指定年月的日歷字符串 (年份,月份,w日期之間的寬度,l日期之間的高度)
calendar.month(2018,9,w = 2,l = 2)
monthcalendar() 獲取指定年月的信息列表 (年份,月份) 0從周一開始排
calendar.monthcalendar(2018,9)
isleap() 檢測是否是潤年(能被4整除不能被100整除或能被400整除)
calendar.isleap(2004)
leapdays() 指定從某年到某年范圍內的潤年個數(shù)
calendar.leapdays(1970,2038)
monthrange() 獲取某年某月的信息 周一是0
calendar.monthrange(2018,8)
weekday() 指定某年某月某日是星期幾
calendar.weekday(2018,8,18)
timegm() 將時間元組轉化為時間戳
ttp = (2018,10,1,13,23,34,0,0,0)
calendar.timegm(ttp)
os模塊-對系統(tǒng)進行操作
system() 在python中執(zhí)行系統(tǒng)命令
popen() 執(zhí)行系統(tǒng)命令返回對象,通過read方法讀出字符串
listdir() 獲取指定文件夾中所有內容的名稱列表
getcwd() 獲取當前文件所在的默認路徑
chdir() 修改當前文件工作的默認路徑
environ 獲取或修改環(huán)境變量
--os 模塊屬性
name 獲取系統(tǒng)標識 linux,mac ->posix windows -> nt
sep 獲取路徑分割符號 linux,mac -> / window-> \
linesep 獲取系統(tǒng)的換行符號 linux,mac -> \n window->\r\n 或 \n
os路徑模塊 -os.path
basename() 返回文件名部分
dirname() 返回路徑部分
split() 將路徑拆分成單獨的文件部分和路徑部分 組合成一個元組
join() 將多個路徑和文件組成新的路徑 可以自動通過不同的系統(tǒng)加不同的斜杠 linux / windows\
splitext() 將路徑分割為后綴和其他部分
getsize() 獲取文件的大小
isdir() 檢測路徑是否是一個文件夾
isfile() 檢測路徑是否是一個文件
islink() 檢測路徑數(shù)否是一個鏈接
getctime() [windows]文件的創(chuàng)建時間,[linux]權限的改動時間(返回時間戳)
getmtime() 獲取文件最后一次修改時間(返回時間戳)
getatime() 獲取文件最后一次訪問時間(返回時間戳)
exists() 檢測指定的路徑是否存在
isabs() 檢測一個路徑是否是絕對路徑
abspath() 將相對路徑轉化為絕對路徑
os 與 shutil 模塊 都具備對文件的操作
-- os模塊具有 新建/刪除/
os.mknod 創(chuàng)建文件
os.remove 刪除文件
os.mkdir 創(chuàng)建目錄(文件夾)
os.rmdir 刪除目錄(文件夾)
os.rename 對文件,目錄重命名
os.makedirs 遞歸創(chuàng)建文件夾
os.removedirs 遞歸刪除文件夾(空文件夾)
shutil模塊
-- shutil模塊 復制/移動/
copyfileobj(fsrc, fdst[, length=16*1024]) 復制文件 (length的單位是字符(表達一次讀多少字符))
copyfile(src,dst) #單純的僅復制文件內容 , 底層調用了 copyfileobj
copymode(src,dst) #單純的僅復制文件權限 , 不包括內容 (虛擬機共享目錄都是默認777)
copystat(src,dst) #復制所有狀態(tài)信息,包括權限,組,用戶,修改時間等,不包括內容
copy(src,dst) #復制文件權限和內容
copy2(src,dst) #復制文件權限和內容,還包括權限,組,用戶,時間等
copytree(src,dst) #拷貝文件夾里所有內容(遞歸拷貝)
rmtree(path) #刪除當前文件夾及其中所有內容(遞歸刪除)
move(path1,paht2) #移動文件或者文件夾
json模塊
所有編程語言都能夠識別的數(shù)據格式叫做json,是字符串
dumps 把任意對象序列化成一個str
loads 把任意str反序列化成原來數(shù)據
dump 把對象序列化后寫入到file-like Object(即文件對象)
load 把file-like Object(即文件對象)中的內容拿出來,反序列化成原來數(shù)據
json 和 pickle 兩個模塊的區(qū)別:
(1)json序列化之后的數(shù)據類型是str,所有編程語言都識別,
但是僅限于(int float bool)(str list tuple dict None)
json不能連續(xù)load,只能一次性拿出所有數(shù)據
(2)pickle序列化之后的數(shù)據類型是bytes,
所有數(shù)據類型都可轉化,但僅限于python之間的存儲傳輸.
pickle可以連續(xù)load,多套數(shù)據放到同一個文件中
壓縮模塊-zipfile (后綴為zip)
zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
ZipFile(路徑包名,模式,壓縮or打包,可選allowZip64)
功能:創(chuàng)建一個ZipFile對象,表示一個zip文件.
參數(shù):
-參數(shù)file表示文件的路徑或類文件對象(file-like object)
-參數(shù)mode指示打開zip文件的模式,默認值為r
r 表示讀取已經存在的zip文件
w 表示新建一個zip文檔或覆蓋一個已經存在的zip文檔
a 表示將數(shù)據追加到一個現(xiàn)存的zip文檔中。
-參數(shù)compression表示在寫zip文檔時使用的壓縮方法
zipfile.ZIP_STORED 只是存儲模式,不會對文件進行壓縮,這個是默認值
zipfile.ZIP_DEFLATED 對文件進行壓縮
-如果要操作的zip文件大小超過2G,應該將allowZip64設置為True。
壓縮文件
1.ZipFile() 寫模式w打開或者新建壓縮文件
2.write(路徑,別名) 向壓縮文件中添加文件內容
3.close() 關閉壓縮文件
解壓文件
1.ZipFile() 讀模式r打開壓縮文件
2.extractall(路徑) 解壓所有文件到某個路徑下
extract(文件,路徑) 解壓指定的某個文件到某個路徑下
3.close() 關閉壓縮文件
追加文件(支持with寫法)
ZipFile() 追加模式a打開壓縮文件
查看壓縮包中的內容namelist()
壓縮模塊-tarfile(后綴為.tar | .tar.gz | .tar.bz2)
bz2模式的壓縮文件較小 根據電腦的不同會差生不同的結果 (理論上:bz2壓縮之后更小,按實際情況為標準)
w 單純的套一個后綴 打包
w:bz2 采用bz2算法 壓縮
w:gz 采用gz算法 壓縮
壓縮文件
#1.open('路徑包名','模式','字符編碼') 創(chuàng)建或者打開文件
#2.add(路徑文件,arcname="別名") 向壓縮文件中添加文件
#3,close() 關閉文件
解壓文件
1.open('路徑包名','模式','字符編碼') 讀模式打開文件
2.extractall(路徑) 解壓所有文件到某個路徑下
extract(文件,路徑) 解壓指定的某個文件到某個路徑下
3.close() 關閉壓縮文件
追加文件
open() 追加模式 a: 打開壓縮文件 正常添加即可
查看壓縮包中的內容getnames()
正則表達
匹配單個字符 => [元字符] 預定義字符集
預定義字符集 | 匹配內容 |
. |
匹配任意字符,除了換行符\n |
\d |
匹配數(shù)字 |
\D |
匹配非數(shù)字 |
\w |
匹配字母或數(shù)字或下劃線 (正則函數(shù)中,支持中文的匹配) |
\W |
匹配非字母或數(shù)字或下劃線 |
\s |
匹配任意的空白符 |
\S |
匹配任意非空白符 |
\n |
匹配一個換行符 |
\t |
匹配一個制表符 |
[] |
匹配中括號內列舉的字符 |
字符組格式 | 說明 [默認必須從字符組中選一個] |
[...] |
匹配字符組中的字符 |
[^...] |
匹配除了字符組內所有內容,之外的所有字符 |
字符組內容 | 待匹配字符 | 匹配結果 | 說明 |
[0] |
8 |
True |
字符組里枚舉的各種字符,必須滿足一個,否則返回假,不匹配 |
[abcdefg] |
9 |
False |
由于字符組中沒有"9"字符,所以不匹配 |
[0-9] |
7 |
True |
可用 - 表示范圍,[0-9] 和 [0]是一個意思 |
[a-z] |
s |
True |
[a-z]匹配所有的小寫字母 |
[A-Z] |
B |
True |
[A-Z]就表示所有的大寫字母 |
[0-9a-fA-F] |
e |
True |
可以匹配數(shù)字,大小寫形式的a-f. 該正則可驗證十六進制 |
(二) 匹配多個字符 => [元字符] 量詞符號
量詞 |
用法說明 |
|
|
--- |
--- |
|
|
? |
重復0次或1次 |
|
|
+ |
重復1次或多次 (至少1次) |
|
|
* |
重復0次或多次 (任意次) |
|
|
{n} |
重復n次 |
|
|
{n,} |
重復n次或更多次 (至少n次) |
|
|
{n,m} |
重復n到m次 |
|
|
.* .+ |
貪婪模式匹配 |
|
|
.*? .+? |
非貪婪模式匹配 |
|
貪婪匹配: 默認向更多次數(shù)匹配 (底層用的是回溯算法)
非貪婪匹配: 默認向更少次數(shù)匹配 (量詞的后面加?號)
(1)量詞( * ? + {} )加上問號?表示非貪婪 惰性匹配
(2)例:.*?w 表示匹配任意長度任意字符遇到一個w就立即停止
匹配開頭結尾 => [元字符] 邊界符號
邊界符 | 說明 |
\b |
匹配一個字符的邊界 |
^ |
匹配字符串的開始 |
$ |
匹配字符串的結尾 |
#### (四) 匹配分組 => [元字符] 分組符號 |
|
分組 |
用法說明 |
--- |
--- |
a|b |
匹配字符a 或 字符b (如果兩個當中有重合部分,把更長的那個放前面) |
(ab) |
匹配括號內的表達式 ,將()作為一個分組 |
\num |
引用分組num匹配到的字符串 |
(?P) |
給分組命名 |
(?P=name) |
引用別名: 把name分組所匹配到的內容引用到這里 |
分組
1.正常分組 ()
1) 正常情況下用()圓括號進行分組 可以用\1 反向引用第一個圓括號匹配的內容。
2) (?:正則表達式) 表示取消優(yōu)先顯示的功能
(正則表達式) 代表分組 findall 把所有分組的內容顯示到列表里
(?:正則表達式) 代表分組 findall 把所有分組的內容不顯示到列表里
2.命名分組
3) (?P<組名>正則表達式) 給這個組起一個名字
4) (?P=組名) 引用之前組的名字,把該組名匹配到的內容放到當前位置
正則表達式修飾符
常用修飾符 | 說明 |
re.I |
使匹配對大小寫不敏感 |
re.M |
使每一行都能夠單獨匹配(多行匹配),影響 ^ 和 $ |
re.S |
使 . 匹配包括換行在內的所有字符 |
正則相關函數(shù)
findall 匹配字符串中相應內容,返回列表 [用法: findall("正則表達式","要匹配的字符串")]
search 通過正則匹配出第一個對象返回,通過group取出對象中的值
match 驗證用戶輸入內容
split 切割
sub 替換
subn 替換
finditer 匹配字符串中相應內容,返回迭代器
compile 指定一個統(tǒng)一的匹配規(guī)則
網站題目:python函數(shù)快查快用
標題鏈接:
http://m.jiaotiyi.com/article/dsojoce.html