轉譯符,re模組,random模組

2022-04-08 22:57:31 字數 3723 閱讀 1969

一, 轉譯符

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

\d+','123

qwer123df')

print(ret)  #引數  返回值型別:列表  返回值個數:1  返回值內容:所有匹配的項若沒有

匹配到就是空列表

search : re.search('正規表示式','字串') 

ret = re.search('

\d+','123

qwer123df')

print(ret) #

引數 返回值型別: 正則匹配結果的物件 返回值個數 : 1

如果匹配上就返回物件,沒匹配上返回none

print(ret.group()) #返回的物件通過group來獲取匹配到的第乙個結果

match : re.match('正規表示式','字串') 

ret = re.match('

\d+','

%^123qwer123df')

print

(ret)

#結果 : none #只從頭開始匹配,相當於在正規表示式前新增乙個 ^

2. 替換( replace)

sub

ret = re.sub('

\d+','

h','

123qwedf

',1)  #把'\d+'替換成'h',指定替換一次(不指定次數全替換)

print(ret)

subn

ret = re.subn('

\d+','

h','

123qwedf

',1)

print

(ret)

#結果 ('hqwerdf' , 1) 給出替換結果和替換的次數

3. 切割 (split) 

ret = re.split('

\d+','

123qwerdf')

print(ret) #

按數字切割

4. compile  (提高時間效率)

ret = re.compile('

-0\.\d+|-[1-9]\d(\.\d+)?

') #

可以重複被利用 ,在多

次使用某乙個相同的正規表示式的時候,compile會提高

程式的效率.

re = ret.search('

qwe-20df-3')

print

(re.group())

#結果 -20

5. finditer  (提高空間效率)  

ret = re.finditer('

\d','

123qwerdf

') #

拿到乙個生成器

for i in ret #

拿到正規表示式物件

print(i.group())

6. 分組優先顯示

#結果 findall 會優先顯示分組中的 baidu|goole 匹配內容,要想取消分

組優先,(?:正規表示式)

split

ret = re.split('

(\d+)

','qwe12d34f')

print(ret) #

遇到分組會保留 被切掉的內容

#結果 ['qwe','12','d','34','f']

search

re.search('

\d+(.\d+)(.\d+)?

','1.2.3-2*(60+(-40.35/5))')

print(ret.group())#

全部輸出/即是print(ret.group(0))

print(ret.group(1))#

.2 優先輸出(.\d+)

print(ret.group(2))#

.3 #如果search中有分組,通過group(n)就能夠拿到group中的匹配的內容

7. 分組命名  

(?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...