- " \ +数字 "
(1)表示第n个元组中的内容
xu_hao_1=re.search(r'a(bca)\1','abcabca')
print(xu_hao_1) #abcabca
(bca)\1==bcabca;
xu_hao_2=re.search(r'(a)(bca)\2','abcabca')
print(xu_hao_2) #abcabca
xu_hao_3=re.search(r'(abc)\1\1','abcabcabc')
print(xu_hao_3) #abcabcabc
xu_hao_4=re.search(r'(abc)\1','abcabcabc')
print(xu_hao_4) ''' #abcabc
(2)数字为三位数时,表示该八进制数对应ASCII码的内容
xu_hao_5=re.search(r'\141','abc')
print(xu_hao_5) #a
xu_hao_6=re.search(r'\061','123')
print(xu_hao_6) #1
- " . "
(1)不带方括号,表示第一个字符
point1=re.search(r'.','the first letter')
print(point1) # t
(2)带方括号,表示"."本身`
point2=re.search(r'[.]','the . itself')
print(point2) # .
- " [ ] "
(1)表示范围
fang_kuo_hao_1=re.findall(r'[a-z]','Get All Letters I Need')
print(fang_kuo_hao_1) #['e', 't', 'l', 'l', 'e', 't', 't', 'e', 'r', 's', 'e', 'e', 'd']
(2)方括号中 " ^ "的用法
fang_kuo_hao_2=re.findall(r'[^(a-z)]',"Get All Letter I Don't Need")
print(fang_kuo_hao_2) #['G', ' ', 'A', ' ', 'L', ' ', 'I', ' ', 'D', "'", ' ', 'N']
放在前面表示提取除了该内容之外的
fang_kuo_hao_3=re.findall(r'[(a-z)^]','No Change ^')
print(fang_kuo_hao_3) #['o', 'h', 'a', 'n', 'g', 'e', '^']
放在后面表示 " ^ "本身
- 重复 " { } " " ? " " * " " + "
(1) " { } "
repeat1=re.search(r'abc{2}','abccabc')
print(repeat1) #abcc
abc{2}==abcc
repeat2=re.search(r'(abc){1,5}','abcabcabc')
print(repeat2) #abcabcabc
重复 “abc” 1次到5次均可,此处为3次
(2) " ? "
重复0次或1次
repeat5=re.search(r'(abc)?','abcabcabcabc')
print(repeat5) #abc
repeat6=re.search(r'ab(def)?','abc')
print(repeat6) #ab
(3)" * "
重复0次到若干次
repeat3=re.search(r'(abc)*','abcabc')
print(repeat3) #abcabc
repeat4=re.search(r'abc(ba)*','abcabc')
print(repeat4) #abc
(4)" + "
重复1次到若干次
- 贪婪
(1) 贪婪模式
greedy=re.search(r'<.+>','<html><title>123<html>')
print(greedy) #<html><title>123<html>
" <.+> " == 尖括号内任意内容,重复1到若干次
.+ == html>
(2)非贪婪模式 " <.+?> "
nogreedy1=re.search(r'<.+?>','<html><title>123<html>')
print(nogreedy1) #<html>
" .+ "不能打括号
nogreedy2=re.search(r'(<.+?>)*','<html><title><html>')
print(nogreedy2) #<html><title><html>
nogreedy3=re.search(r'(<.+?>)?','<html><title><http><html>')
print(nogreedy3) #<html>