【python基礎】十七、Python正則 re

正則

  • 篩選

  • 判斷

  • match – 匹配開頭

  • search – 匹配第一個

  • findall – 匹配全部

.	用於匹配除換行符(\n) 之外的所有字符。   
^	用於匹配字符串的開始,即行首。     
$	用於匹配字符串的末尾(末尾如果有換行符\n,就匹配\n前面的那個字符),即行尾。

*	用於將前面的模式匹配0次或多次(貪婪模式,即儘可能多的匹配)      
+	用於將前面的模式匹配1次或多次(貪婪模式)       
?	用於將前面的模式匹配0次或1次(貪婪模式)       
*?	+?	??	即上面三種特殊字符的非貪婪模式(儘可能少的匹配)。       
{m,n}	用於將前面的模式匹配m次到n次( 貪婪模式),即最小匹配m次,最大匹配n次。      
{m,n}?  即上面‘{m,n}’的非貪婪版本。       
\	是轉義字符,在特殊字符前面加上\,特殊字符就失去了其所代表的含義,比如\+就僅僅代表加號+本身。        
[]	用於標示一組字符,如果是第一個字符,則標示的是一個補集。比如[0-9]表示所有的數字,[ 0-9]表示除了數字外的字符     
|	比如A I B用於匹配A或B。     
(...)	用於匹配括號中的模式,可以在字符串中檢索或匹配我們所需要的內容。        
  • 範圍類
[]          匹配範圍
.           所有字符(除\n外)
^           行首 
$           行尾  
^..str..$   從頭匹配到尾 

[0-9]       純數字
[a-zA-Z]    純字母
[0-9a-zA-Z] 數字和字母
[#$%^&*]    #或$或%或^或&或*

  • 次數類
*       0次以上
+       1次以上
{m,}    m次以上

{n}     n次
{m,n}   m-n次   

?       0次 或 1次
  • 轉義類
\A      從開始匹配
\Z      從結束匹配
\b      匹配單詞邊界 即單詞間的空格
\B      非單詞邊界

\d      [0-9]
\D      [^\d]非數字

\s      [\t\n\r\f] 匹配任意空白字符
\S      [^\s]匹配任意非空白字符

\w      [a-zA-Z0-9_] 匹配任意 數字 字母 下劃線
\W      [^\w]
\\      匹配\

引用第一組匹配的內容


分組匹配

import re
html = '<html><h1>你哈</h1></html>'
res_h = re.match(r'<(\w+)><(\w+)>(.+)(</\2>)(</\1>)', html)

# 分組 + 起名
res_n = re.match(r'<(?P<name1>\w+)><(?P<name2>\w+)>(.+)(</(?P=name2)>)(</(?P=name1)>)', html)
print(res_n)
# (?P<name>)    起名
# (?P=name)     引用

  • 其他
re.sub('\d','rep',str)
re.sub('\d',func, str)

re.split()


沒怎麼貼代碼

在b站學習中

個人主頁

學習鏈接

歡迎 批評 指正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章