python中re模块怎么导入_python中re模块的使用

正则表达式,听起来挺高大上,几乎所有的语言都有这个内容,python中是用re模块,接下来先介绍下什么是正则表达式,比如你要从一大串字符串中提取出你要的信息,www.baidu.com www.youtube.com,你要从中提取出baidu,youtube等字符串,怎么办呢,首先来分析它的结构,不难看出,这些字符串前面是www,后面是.com,中间就是我们要的部分,因此我们可以写一个这样的表达式

p=r'www\.(.+?)\.com'  其中的\.是为了转义.,.在正则表达式中是通配符,可以匹配任何字符,这个表达式就可以匹配如www.baidu.com,www.sina.com这样的字符串了,那中间的(.+?)是什么意思呢,()代表的是第几个子模式,比如(0(1)(2)),其中的数字就代表第几个子模式,其实非常容易理解,就看左边有多少个(就可以,如果没有(,就默认为1,用一个()把所有的字符串包裹住,那现在我们的子模式1中就是baidu,sina等内容了,那这个?是什么意思呢,代表非贪婪模式,就是尽可能少匹配,一遇到后面是.com就停止匹配。说了这么多,上代码。

import re #导入re模块

s=r'www.baidu.com www.youtube.com'

pat=r'www\.(.+?)\.com'

p=re.compile(pat) #预编译正则表达式,下次使用可以缩短时间

m=re.match(pat,s) #匹配s的开头的字符串,返回matchobject对象,如果是search()就是匹配所有的字符串

print(m.group(1)) #打印第一个子模式的内容,指定了1,不指定就默认为0

print(m.groups()) #打印所有子模式的内容,返回一个元组,

print(re.findall(pat,s)) #打印出所有正则表达式匹配了字符串的内容,上面的是只匹配第一个,这个是匹配所有的

结果如下:

baidu

('baidu',)

['baidu', 'youtube']

正则表达式的匹配规则:. 匹配所有内容,若想匹配它本身(一个点符号),r'\.' 转移即可,[ a-z]字符集,匹配a-z的任意字母,其实就是任意一个小写字母,大写就是[A-Z],[^a-z ] 匹配非小写字母,^就是非,r'^ a  b$’,^开头为a,$结尾为b,\w匹配字母和数字,\d匹配数字,\r匹配空格,\t匹配tab

还有很多匹配规则,这里只列出常用的,具体可以查看官方文档多练习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值