一, 轉譯符
1.python 中的轉譯符
正規表示式中的內容在python中就是字串
' \n ' : \ 轉移符賦予了這個n乙個特殊意義,表示乙個換行符
' \ \ n' : \ \ 表示取消了\的轉譯
r 表示取消本字串的所有轉譯
在正規表示式中: '\\n'-->'\n',但是在pycharm中 \n為換行符,則需要轉譯 '\\n',與之匹配
的應為 : '\\\\n'-->'\\n '
在python中 : r '\\n'-->r '\n'
2. 正規表示式中的轉義
' \( ' 表示匹配小括號 ; [() + * ? / $ .] 在字元組中一些特殊的字元會現原形.
[ - ] 只寫在字元組的首位的時候表示普通的 減號 / 負號寫在其他位置表示範圍
如果就是想匹配減號 [1\-9]
二, re 模組
操作匹配的字串
方法: findall search math 替換 sub subn 切割 compile finditer
1. 查詢
findall : re.findall('正規表示式','字串')
ret = re.findall('search : re.search('正規表示式','字串')\d+','123
qwer123df')
print(ret) #引數 返回值型別:列表 返回值個數:1 返回值內容:所有匹配的項若沒有
匹配到就是空列表
ret = re.search('match : re.match('正規表示式','字串')\d+','123
qwer123df')
print(ret) #
引數 返回值型別: 正則匹配結果的物件 返回值個數 : 1
如果匹配上就返回物件,沒匹配上返回none
print(ret.group()) #返回的物件通過group來獲取匹配到的第乙個結果
ret = re.match('2. 替換( replace)\d+','
%^123qwer123df')
(ret)
#結果 : none #只從頭開始匹配,相當於在正規表示式前新增乙個 ^
sub
ret = re.sub('subn\d+','
h','
123qwedf
',1) #把'\d+'替換成'h',指定替換一次(不指定次數全替換)
print(ret)
ret = re.subn('3. 切割 (split)\d+','
h','
123qwedf
',1)
(ret)
#結果 ('hqwerdf' , 1) 給出替換結果和替換的次數
ret = re.split('4. compile (提高時間效率)\d+','
123qwerdf')
print(ret) #
按數字切割
ret = re.compile('5. finditer (提高空間效率)-0\.\d+|-[1-9]\d(\.\d+)?
') #
可以重複被利用 ,在多
次使用某乙個相同的正規表示式的時候,compile會提高
程式的效率.
re = ret.search('
qwe-20df-3')
(re.group())
#結果 -20
ret = re.finditer('6. 分組優先顯示\d','
123qwerdf
') #
拿到乙個生成器
for i in ret #
拿到正規表示式物件
print(i.group())
#結果 findall 會優先顯示分組中的 baidu|goole 匹配內容,要想取消分
組優先,(?:正規表示式)
split
ret = re.split('search(\d+)
','qwe12d34f')
print(ret) #
遇到分組會保留 被切掉的內容
#結果 ['qwe','12','d','34','f']
re.search('\d+(.\d+)(.\d+)?
','1.2.3-2*(60+(-40.35/5))')
print(ret.group())#
全部輸出/即是print(ret.group(0))
print(ret.group(1))#7. 分組命名.2 優先輸出(.\d+)
print(ret.group(2))#
.3 #如果search中有分組,通過group(n)就能夠拿到group中的匹配的內容
(?p正規表示式) 表示給分組起名字 ; (?p=name) 表示使用分組
當匹配的內容和 另一部分必須一樣是可以使用分組命名
前後組名必須一樣才能匹配成功
必須先定義分組才能使用分組
索引方法使用分組
\1 表示使用第一組,匹配到的內容必須和第乙個組中的內容完全相同
三, random模組
隨機: 在某個範圍內取到每乙個值的概率是相同的
1. 隨機小數
random.random() 0-1之間的隨機小數
random.uniform(1,9) 任意範圍內的小數
2. 隨機抽取
num = [1,2,3,'qwe',('hehe','haha')]
random.choice(num) 隨機抽取列表中乙個值
random.sample(num,2) 隨機抽取列表中2(多個值)值
3. 隨機整數
random.randint(1,8) [1,8] 包含8在內的範圍內隨機取整數
random.randrange(1,8) [1,8) 不包含8在內的範圍內隨機取整數
random.randrange(1,10,2) [1,8) 不包含8在內的範圍內隨機取奇數整數
4. 打亂順序
num = [1,2,3,'qwe',('hehe','haha')]
random.shuffle(num) 在原列表基礎上打亂順序
re模組和分組 random模組
一,re模組 1.findall search match 查詢,匹配 findall方法括號內引數 正則,字串,返回值是乙個列表,匹配不到返回 空列表 如 ret re.findall s kjewhfqho254qfewgf print ret search 方法括號內引數 正則,字串,匹配到返...
python模組 random模組
python中的random模組用於生成隨機數。下面介紹一下random模組中最常用的幾個函式。函式函式功能 random.random 生成乙個0到1的隨機浮點數 0 n 1.0 random.uniform a,b 生成乙個指定範圍內的隨機浮點數 a n b random.randint a,b...
random模組time模組
import time time.time 從1970年到現在,一共過了多少秒 一般這麼用 t1 time.time code running time to be count t2 time.time total t2 t1 time.strftime y 2020 年 time.strftime...