Python3正则表达式使用
来源:互联网 发布:淘宝上的算命准吗 编辑:程序博客网 时间:2024/05/17 07:30
正则表达式是处理字符串的强大的工具,它有自己特定的语法结构,有了它,实现字符串的检索、替换、匹配验证都不在话下。
模式描述
\w匹配字母数字及下划线\W匹配非字母数字及下划线\s匹配任意空白字符,等价于 [\t\n\r\f].\S匹配任意非空字符\d匹配任意数字,等价于 [0-9]\D匹配任意非数字\A匹配字符串开始\Z匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串\z匹配字符串结束\G匹配最后匹配完成的位置\n匹配一个换行符\t匹配一个制表符^匹配字符串的开头$匹配字符串的末尾。.匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。[...]用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k'[^...]不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。*匹配0个或多个的表达式。+匹配1个或多个的表达式。?匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式{n}精确匹配n个前面表达式。{n, m}匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式a|b匹配a或b( )匹配括号内的表达式,也表示一个组
.匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符
import rea = 'xz123'b = re.findall('x....',a)print(b)运行结果:['xz123']
*匹配0个或多个的表达式
import rea = 'xyxy123'b = re.findall('x*',a)print(b)运行结果:['x', '', 'x', '', '', '', '', '']
?匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
import rea = 'xy123'b = re.findall('x?',b)print(b)运行结果:['x', '', '', '', '', '']
.*的使用举例
import resecrect_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse'b = re.findall('xx.*xx',secrect_code)print(b)运行结果:['xxIxxfasdjifja134xxlovexx23345sdfxxyouxx']
.*?的使用举例
secrect_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse'b = re.findall('xx.*?xx',secrect_code)print(b)运行结果:['xxIxx', 'xxlovexx', 'xxyouxx']
(.*?)使用括号与不使用括号的差别
( )匹配括号内的表达式,也表示一个组
import resecrect_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse'd = re.findall('xx(.*?)xx',secrect_code)print(d)for each in d: print(each)运行结果:['I', 'love', 'you']Iloveyou
re.S的作用使.的作用包括了\n
import res = '''sdfxxhelloxxfsdfxxworldxxasdf'''d = re.findall('xx(.*?)xx',s,re.S)print(d)运行结果:['hello', 'world']
$匹配字符串的末尾
import res= 'detail.html?key=TISSUE INJURY'f = re.findall('key=(.*?)',s)print(f)运行结果:['']import res= 'detail.html?key=TISSUE INJURY'f = re.findall('key=(.*?)$',s)print(f)运行结果:['TISSUE INJURY']
\d匹配任意数字,等价于 [0-9]
import res = 'asdfasf1234567fasd555fas'b = re.findall('(\d+)',s)print(b)运行结果:['1234567', '555']
\转义字符
import res = 'sda123sdaslda.s/'b = re.search('\.',s)print(b)print(b.span())print(b.group())运行结果:<_sre.SRE_Match object; span=(13, 14), match='.'>(13, 14).
a|b匹配a或b
import res = 'fishdafishc'b= re.search(r'fish(c|d)',s)print(b)运行结果:<_sre.SRE_Match object; span=(0, 5), match='fishd'>
{n}精确匹配n个前面表达式
import res ='i fishhhfish.a'b = re.search(r'fish{3}',s)print(b.group())运行结果:fishhhs = 'i fishhhfishfishfish.a'b = re.search(r'(fish){3}',s )print(b.group())运行结果:fishfishfish
{n, m}匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式
import res = 'i fishhhfishfishfish.a'b = re.search(r'(fish){2,5}',s)print(b.group())运行结果:fishfishfish
sub的使用举例
import res = '123rrrrr123'output = re.sub('123(.*?)123','123%d123'%789,s)print(output)运行结果:123789123#把一串文本中的所有数字都去掉content = '54aK54yr5oiR54ix5L2g'content = re.sub('\d+', '', content)print(content)运行结果:aKyroiRixLg
findall与search的区别
import res2 = 'asdfxxIxx123xxlovexxdfd'f = re.search('xx(.*?)xx123xx(.*?)xx',s2).group(1)print(f)f2 = re.findall('xx(.*?)xx123xx(.*?)xx',s2)print(f2[0][1])运行结果:I[('I', 'love')]love
阅读全文
0 0
- Python3正则表达式使用
- python3使用正则表达式小记
- python3正则表达式学习及使用记录
- Python3:正则表达式
- Python3 re(正则表达式)
- python3正则表达式
- python3之正则表达式
- Python3正则表达式
- Python3 正则表达式
- Python3 re(正则表达式)
- Python3正则表达式
- Python3.x 正则表达式
- Python3 如何优雅地使用正则表达式(详解一)
- Python3 如何优雅地使用正则表达式(详解二)
- Python3 如何优雅地使用正则表达式(详解三)
- Python3 如何优雅地使用正则表达式(详解四)
- Python3 如何优雅地使用正则表达式(详解五)
- Python3 如何优雅地使用正则表达式(详解六)
- 基础练习 FJ的字符串
- Activity的四种启动模式
- AVL_tree
- js报错:uncaught syntaxError:unexpected tokenj
- ThridExam
- Python3正则表达式使用
- extJS 4.2 自定义分页
- opencv for python (1) 图像读取、显示、保存
- freemarker调试遇到的问题备忘
- 人工智能的伦理和价值观——阿西洛马人工智能原则(Asilomar AI Principles )
- freemarker导出PDF
- 策略模式
- 如何调试Android Framework?
- JQuery 入门介绍