博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python正则表达式
阅读量:6829 次
发布时间:2019-06-26

本文共 3267 字,大约阅读时间需要 10 分钟。

元字符 . ^ $ * + ? {} [] | () \

. 匹配除换号符以为的任意一个符号

ret=re.findall('李.','李杰,李刚,王超,占山,李莲英')print(ret)执行结果['李杰', '李刚', '李莲']
ret2=re.findall('李..','李杰,李刚,王超,占山,李莲英')print(ret2)执行结果['李杰,', '李刚,', '李莲英']

^ 以指定字符开头

ret3=re.findall('^李.','yuan李杰,李刚,王超,占山,李莲英')print(ret3)执行结果[]

$ 以指定字符结尾

ret=re.findall('英$','yuan李杰,李刚,王超,占山,李莲英')print(ret)执行结果['英']

重复 *:[0,∞)   +:[1,∞)     ?:[0,1]     {}:指定次数

ret4=re.findall('\d{18}','2665622,54694433,4113261996035402554,5565599')print(ret4)执行结果['411326199603540255']
ret5=re.findall('131\d*','13158956,6354895131696,6587952132254131')print(ret5)执行结果['13158956', '131696', '131']

 \ 转义符,将元字符转换为普通符号;将一些普通符号转换为特殊功能的符号

\d匹配任何十进制数,等于[0-9]
\D匹配任何非数字字符,等于[^0-9]
\s匹配任何空白字符,等于[\t\n\r\f\v]
\S匹配任何非空白字符,等于[^\t\n\r\f\v]
\w匹配任何字母数字字符,等于[a-zA-Z0-9_]
\W匹配任何非字母数字字符,等于[^a-zA-Z0-9_]
\b匹配一个特殊字符边界,比如空格,&,#等

ret=re.findall(r'I\b','hello I am xiaobai')print(ret)执行结果['I']
ret=re.findall('\d','hello I am xiaobai')print(ret)执行结果[]
ret=re.findall('\D','hello I am xiaobai')print(ret)执行结果['h', 'e', 'l', 'l', 'o', ' ', 'I', ' ', 'a', 'm', ' ', 'x', 'i', 'a', 'o', 'b', 'a', 'i']
ret=re.findall('\s','hello I am xiaobai')print(ret)执行结果[' ', ' ', ' ']
ret=re.findall('\S','hello I am xiaobai')print(ret)执行结果['h', 'e', 'l', 'l', 'o', 'I', 'a', 'm', 'x', 'i', 'a', 'o', 'b', 'a', 'i']
ret=re.findall('\w','hello I am xiaobai')print(ret)执行结果['h', 'e', 'l', 'l', 'o', 'I', 'a', 'm', 'x', 'i', 'a', 'o', 'b', 'a', 'i']
ret=re.findall('\W','hello I am xiaobai')print(ret)执行结果[' ', ' ', ' ']

 | 或者

ret=re.findall('www\.(?:\w+)\.(?:com|cn)','www.oldboy.com;www.oldboy.cn;www.baidu.com')print(ret)执行结果['www.oldboy.com', 'www.oldboy.cn', 'www.baidu.com']

 

()分组 优先寻找并显示分组内容

ret6=re.findall('yuan+','fadsyuannnnndayuanyuanyaun')print(ret6)执行结果['yuannnnn', 'yuan', 'yuan']
ret7=re.findall('(yuan)+','fadayuannnnasdayuanyuanyaun')print(ret7)执行结果['yuan', 'yuan']
ret=re.search('\d|(ab)','rabhdg8sd')print(ret.group())执行结果ab
ret=re.findall('\d|(?:ab)','rabhdg8sd')print(ret)执行结果['ab', '8']

命名分组

ret10=re.search(r'-blog-articles-(?P
20[01]\d)-(?P
[01][1-9])','-blog-articles-2017-09')print(ret10.group())print(ret10.group('month'))执行结果-blog-articles-2017-0909

字符集[ ],只匹配一个符号,元字符失效;只有三个特殊符号:- ^ \

ret=re.findall(r'a[^\d]c','dasda54adaga3casc')print(ret)执行结果['asc']

re.search() 只匹配一项符合规则的元素

ret8=re.search('\d+','123qweqweq654eqw863')print(ret8)print(ret8.group())执行结果<_sre.SRE_Match object; span=(0, 3), match='123'>123

re.match() 只匹配字符串开始的位置

ret9=re.match('\d+','448959dasdas4741')print(ret9.group())执行结果448959

 

#configparser模块 用于文件的读与写操作import configparsercfp=configparser.ConfigParser()cfp['DEFAULT']={
'ServerAliveInterval':45,'Compression':'YES','CompressionLevel':9,'ForwardX11':'YES'\ }cfp['bitbucket.org']={
'User':'hg'}cfp['topsecret.server.com']={
'port':5000123,'ForwardX11':'no'}with open('cfp.ini')as f: cfp.write(f)
#操作文件 读与写操作 cfp=configparser.ConfigParser() cfp.read('cfp.ini') print(cfp.sections()) print(cfp.items('bitbucket.org')) print(cfp.options('bitbucket.org'))
 
#subprocess模块import subprocesss=subprocess.Popen('dir',shell=True)#开启新的进程s.wait()print('ending')s=subprocess.Popen('dir',shell=True,stdout=subprocess.PIPE)print(s.stdout.read().decode('gbk'))

 

转载于:https://www.cnblogs.com/c491873412/p/7081110.html

你可能感兴趣的文章
golang 碎片整理之 结构体
查看>>
查看oracle查看当前连接以及修改最大连接数
查看>>
docker安装mysql镜像
查看>>
java中的IO整理
查看>>
我的linux学习决心书
查看>>
python 之多线程加锁
查看>>
我的友情链接
查看>>
exchange快速将断开的邮箱显示出来
查看>>
linux 下查找文件或者内容常用命令
查看>>
Linux常用系统调用表
查看>>
linux x86_64要注意的问题
查看>>
批处理中的call与start的个人学习心得
查看>>
搜索引擎的前世今生
查看>>
JSP
查看>>
经典排序算法 - 地精排序Gnome Sort
查看>>
mysql rand函数
查看>>
24种编程语言的Hello World程序
查看>>
Java中main函数参数String args[] 和 String[] args 区别
查看>>
Jarvis Oj Pwn 学习笔记-Tell Me Something
查看>>
【WP7进阶】——XNA游戏精灵的动画
查看>>