python中re怎么念_python中re模块

正则表达式是什么

正则表达式是小型的高度专业化的语言,是由C编写的。

正则表达式的作用

慢慢了解

正则表达式的原理

元字符

【.】通配符,只能代指除换行符外的所有的字符。

【^】尖角符,从开始位置匹配

【$】结尾符,从结束位置匹配

【*】重复匹配,重复前一个字符0到无穷次

【+】重复匹配,重复前一个字符1到无穷次

【?】重复匹配,重复前一个字符0到1次

【{n, m}】重复匹配,重复前一个字符n到m次,包含m,可小于m次,m省略为正无穷,大括号不推荐使用。

【[]】字符集,[xy]只能二选一;取消元字符的特殊功能(x和y之间不用加逗号),例如[*]就表示*,但是(-, \, ^)是例外的,[^a]尖角符是取反的意思,非a的意思;[^4, 5]4,5是一组,就是不能取4,或者5。

【\】反斜杠后面跟元字符是去除其特殊功能;后面跟普通字符是实现特殊功能.

【\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】匹配一个单词的边界,例如re.findall(r"\bare\b", "what is this, you are symbol, whoare,you")

【|】或的意思,通常与圆括号在一起使用,圆括号内是作为一个整体使用。

分组

()圆括号代表组概念,使用findall()返回的是匹配组内的内容,如果加上?则失效。

(?\d{3})表达的意思是给\d{3}作为一组起个名字叫做name。

非贪婪匹配

数量通配符后面加上问号,则修改为非贪婪匹配。

正则表达式的方法

re.findall(查找内容, 字符串,标志位 )返回查找的数据列表,返回所有的结果。

re.search(查找内容, 字符串, 标志位)返回匹配的第一个对象,是对象而不是结果,如果没有找到,则返回None,通过group()方法返回匹配满足条件的结果。

re.math(查找内容, 字符串, 标志位)只在字符串开始匹配,返回第一个匹配到的对象,返回的对象可以调用group()方法。

re.split(查找内容, 字符串, 最大的分割数, 标志位)按照查找的内容分割字符串返回列表,查找的内容不会显示在列表中,如果查找的内容在字符串的第一个位置,则列表中会有空的元素存在。

re.sub(查找内容, 替换内容, 字符串, 替换次数, 标志位)用于字符串替换返回替换后的字符串。

re.compile(匹配模式, 标志位)将匹配模式编译成正则表达式对象。此对象再调用上述的各种方法。

说明

字符串前面r表示原生字符串,不需要转义。

re中,使用\\表示我们看到的单个\;在python解释器中,使用\\\\表示re中的\\。

实例

匹配网址

1 #匹配url网址

2 importre3

4

5 partten = '[a-zA-Z]+://[^\s]*[.com|.cn]/'

6 string = 'https://music.163.com/#/song?id=338716'

7 result =re.search(partten, string)8 print(result)

网址匹配

匹配电话

1 importre2

3

4 partten = '\d{4}-\d{7}|\d{3}-\d{8}'

5 string = '010-32412412521512525'

6 result =re.search(partten, string)7 print(result)

匹配电话

匹配邮箱

1 importre2

3

4 partten = '^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$'

5 string = '123456@qq.com'

6 result =re.search(partten, string)7 print(result)

匹配邮箱

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值