初识python正则表达式和re模块

正则表达式和re模块

介绍:按照一定的规则,从某个字符串中匹配出想要的数据。这个规则就是正则表达式

match只能从开始匹配

search从全部匹配

正则表达式规则:

表达式作用
.匹配任意的字符,不能匹配到换行符
\d匹配任意的数字
\D匹配任意的非数字
\s匹配空白字符(包括:\n,\t,\r,空格)
\w匹配a-z和A-Z以及数字.下划线
\W匹配和\w相反的东西
+匹配一个或多个
*匹配0个或多个
?匹配的字符可以出现一次或0次
{m}匹配m个字符
{m,n}匹配m到n个
^(脱字号)中括号中表示取反, 外面表以什么开始
$表示以什么结 尾, 在最后添加$
|匹配多个字符串或表达式

转义字符

如果符号有特殊意义,在前面加一个\表示转义

原生字符串

python中自带转义字符\
text = '\\n'
print(text)  #\n
text = r'\n'  #raw 生的
print(text) #\n
text = "\\c"  
#在python中等价\n
#正则表达式中:\n
ret = re.match('\\\\c', text)
#ret = re.match(r'\\c', text)
print(ret.group())   #\c

组合方式[]

​ 等价带换

  • \d: [0-9]
  • \D: [^0-9]
  • \w [0-9a-zA-Z_]
  • \W [^0-9a-zA-Z_]

贪婪模式

​ 匹配全部

text = '<h1> title</h1>''
ret = re.match('<.+>', text)
print(ret)  #<h1> title</h1>

非贪婪模式

匹配部分

text = '<h1> title</h1>''
ret = re.match('<.+?>', text)
print(ret)  #<h1>

正则案例

1.验证手机号码:手机号码的规则是以1开头,第二位可以是34587 ,后面那9位就可以随意了。示例代码如下:

 	text = 12345678943
    ret = re.match('1[34578]\d{9}',text)

2.验证邮箱

re.match('\w+@[a-z0-9]+\.[a-z]+',text)  #对点进行了转义

3.验证URL

re.match('(http|https|ftp)://[^\s]+', text)

4.验证身份证

regex = '\d{17}[\dxX]'

5.匹配0-100的数字

不能出现的.08, 101

regex = '[1-9]\d?$|100$'

re模块中的函数

match:从开始找

search:整个字符串找

分组group

在正则表达式中,可以对过滤到的字符串进行分组。分组使用圆括号的方式。

  1. group :和group(0)是等价的,返回的是整个满足条件的字符串。
  2. groups :返回的是里面的子组。索引从1开始。
  3. group(1) :返回的是第一个子组,可以传入多个。

在这里插入图片描述
findall

找出所有满足条件的,返回的是一个列表

在这里插入图片描述

sub

用来替换字符串,将匹配到的字符串替换为其他字符串

在这里插入图片描述

split

分隔字符串,返回一个列表

compile

对于一些经常要用到的正则表达式,可以使用compile进行编译,后期再使用的时候可以直接拿过来用,执行效率会更快。而且compile 还可以指定flag=re.VERBOSE ,在写正则表达式的时候可以做好注释。示例代码如下:

text = 'the number is 20.50'
r = re.compile('\d+\.?\d*')
ret = re.search(r, text)
print(ret.group())

下面这种方式可以添加注释

text = 'the number is 20.50'
r = re.compile(r"""
	\d+  	#小数点前面的数字
	\.?		#小数点本身
	\d*		#小数点后面的数字
""",re.VERBOSE)
ret = re.search(r, text)
print(ret.group())
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的高校科研信息管理系统实现了操作日志管理、字典管理、反馈管理、公告管理、科研成果管理、科研项目管理、通知管理、学术活动管理、学院部门管理、科研人员管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让高校科研信息管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值