一.轉義符
1.在python中的轉義符
(1)\\n與\n的區別
(2)r"\next" 通過r來進行轉義
(3)"\\\\d"與"\\d"的組合
2.在正則表達式中的轉義符
(1)\\n 表示匹配\n這個字符
(2)[(), +, *,/, ., ?, $] 這些符號在[]中會現原形
(3)"\(" 表示匹配(這個符號
二 re模塊
1.字符串匹配
(1)re.findall("正則表達式", "字符串") 返回一個列表,返回的內容為 匹配到的所有內容,如果沒有匹配到內容返回[].
(2)re.search("正則表達式", "字符串") 返回匹配到結果的對象,如果沒有匹配到內容返回None
(3)re.match("正則表達式", "字符串") 返回內容同上search,但是在字符串開頭必須匹配到內容,如果開頭沒匹配到返回None
2.替換和切割
(1)re.sub("正則表達式", "替換的內容", "字符串",個數(默認全部替換)) 返回一個被替換過的字符串
(2)re.subn("正則表達式", "替換的內容", "字符串",個數(默認全部替換)) 返回一個元組,返回內容為被替換過 的字符串和替換的個數
3.進階方法
(1)re.compile("正則表達式") (時間效率) 節省時間:只有多次使用某一個相同的正則表達式時才使用
(2)re.findter("正則表達式", "字符串") 返回一個迭代器,通過for循環可得到匹配到的所有結果的對象.再使用group()打印用每個結果
三.正則表達式在python中使用的一些特殊用法
1.findall+分組 優先顯示分組里的內容,要想取消分組優先,要在分組中加(?:)
2.search+分組 通過group(n),可以得到group()匹配到的內容
3.split+分組 保留分組內被分割掉的內容
4.分組命名
(1).

ret = re.search("<(?P<name>\w+)>\w+</(?P=name)>", "<a>hahaha</a>") print(ret.group()) print(ret.group("name")) print(ret.group(1)) # print(ret.group(2)) ret = re.search(r"<(\w+)>\w+</\1>", "<a>hahaha</a>") print(ret.group()) print(ret.group(1))
四.random模塊
1.隨機小數
(1).random.random() 0-1范圍內的隨機小數
(2)random.uniform(1,5)任意范圍內的隨機小數
2.隨機整數
(1)random.randint(1,2) [1,2]包含2在內的范圍內隨機整數
(2)random.randrange(1,2) [1,2) 不包含2在內的范圍內的隨機整數
(3)random.randrange(1,10,2) [1,10)不包含10在內的范圍內的隨機奇數
3.隨機抽取
(1)random.choice(list) 隨機從列表中抽取一個值
(2)random.sample(lst,n) 隨機抽取n個值
(3)random.stuffle(list) 在原列表的基礎上做亂序
隨機抽取 隨機抽取一個值 lst = [1,2,3,'aaa',('wahaha','qqxing')] ret = random.choice(l) print(ret) 隨機抽取多個值 ret = random.sample(lst,2) print(ret) 打亂順序 在原列表的基礎上做亂序 lst = [1,2,3,'aaa',('wahaha','qqxing')] random.shuffle(lst) print(lst)

def rand_code(n=6 , alph_flag = True): code = '' for i in range(n): rand_num = str(random.randint(0,9)) if alph_flag: rand_alph = chr(random.randint(97,122)) rand_alph_upper = chr(random.randint(65,90)) rand_num = random.choice([rand_num,rand_alph,rand_alph_upper]) code += rand_num return code ret = rand_code(n = 4) print(ret)