正则表达式实用语法--re
恢复1、. 通配符:可以匹配任何字符,换行符' '除外
# . 通配符,只代表一个元素,换行符除外 import re res=re.findall('s.','songqingsis ') #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
re.X:该标志通过给予你更灵活的格式以便你将正则表达式写的更易于理解
取值可以使用按位或运算符‘|’表示同时生效,比如re.I|re.M