正則表達式實用語法--re
恢復1、. 通配符:可以匹配任何字符,換行符'\n'除外
# . 通配符,只代表一個元素,換行符除外 import re res=re.findall('s.','songqingsis\n') #1、至少兩個必填參數(正則表達式,處理的字符串)2、返回類型:列表 print(res) 結果: ['so','si']
2、* 出現0次或多次
import re res=re.findall('son*','songso') print(res)
結果:
['son','so']
3、+ 出現1次或多次
import re res=re.findall('son+','songso') print(res) 結果: ['son']
4、? 匹配0個或1個有前面的正則表達式定義的片段,非貪婪方式,常用方式(.+?)或(.*?)
import re res=re.findall('son(.+?)','songso') print(res) 結果: ['g']
5、\w 匹配所有字母、數字、下划線,表示一個元素
import re res=re.findall('\w','songso@') #@不能被匹配到 print(res) 結果: ['s', 'o', 'n', 'g', 's', 'o']
import re res=re.findall('\w{3}','songso@1234%12') #{3}表示連續3位能被取到 print(res) 結果: ['son', 'gso', '123']
6 \W 匹配所有的非(字母、數字、下划線) 表示一個元素
import re res=re.findall('\W{3}','songso@$#@1234#12') print(res) 結果: ['@$#']
7、\d 匹配所有的數字 0-9
import re res=re.findall('\d{3}','songso@$#@1234#12') print(res) 結果: ['123']
8、\D 匹配任意非數字
9、^ 匹配字符串的開頭
10、$ 匹配字符串的結尾
常用方法:
1、re.match(pattern,string,flags=0):從字符串的起始位位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回none
2、re.search(pattern,string,flags=0):掃描整個字符串並返回第一個成功的匹配
3、re.sub(pattern,repl,string,count=0):用於替換字符串中的匹配項,repl:替換的字符串,也可是一個函數
4、re.compile(pattern[,flags]):用於編譯正則表達式,生成一個正則表達式(pattern)對象,供match()和search()等函數使用
import re recom=re.compile('\d{3}') res=recom.findall('songso@$#@1234#12') print(res) 結果: ['123']
5、re.findall(string[,pos[,endpos]]):在字符串中找到正則表達式所匹配的所有子串,並返回一個列表,如果沒有找到匹配的,則返回空列表
6、re.split(pattern,string[,maxsplit=0,flags=0]):能夠匹配的子串將字符串分割后返回列表
常用修飾符
re.I:使匹配對大小寫不敏感
import re res=re.findall('s.','songSo@1234',re.I) print(res) 結果: ['so', 'So']
re.L :做本地化識別(local-aware)匹配
re.M :多行匹配,影響 ^ 和 $
re.S :使 . 匹配包括換行在內的所有字符串
re.U:根據Unicode字符集解析字符。這個標志影響\w,\W,\b,\B
re.X:該標志通過給予你更靈活的格式以便你將正則表達式寫的更易於理解
取值可以使用按位或運算符‘|’表示同時生效,比如re.I|re.M