正则表达式
来源:互联网 发布:java如何实现分布式 编辑:程序博客网 时间:2024/06/15 23:39
什么是正则表达式?
正则表达式是一种用特殊的字符串制定的规则,通过制定好的规则,可以在所有字符串中查找自己想要的数据,对数据进行筛选和过滤。
正则表达式用法?
1)依次拿出来表达式和文本进行对比
2)判断表达式和文本是否完全匹配成功,如果匹配成功,说明找到和规则相同的字符串,如果一个字符串不匹配,就匹配失败
用法:
1)使用内置库re模块,进行正则匹配
2)构造正则表达式
3)利用正则函数进行匹配
正则表达式的常用语法:
在这里介绍4中最常用的正则函数:
1)match()函数:
从字符串的开始位置开始匹配,如果匹配到对应的正则表达式的数据,就说明匹配成功,返回匹配到的数据;如果不是以正则表达式开头的,匹配失败,匹配到第一个符合正则表达式条件的。
参数有两个(正则表达式,进行匹配到的分组信息)
import repattern = re.compile(r'hello', re.I) #r 原样字符串, re.I匹配全拼不区分大小写string = 'Hello, word'result = re.match(pattern, string)if result: # .group()获取匹配到的分组信息 print result.group()else: print '匹配失败'2)search()函数:
从大的字符串中匹配符合正则的字符串,无论字符串在什么位置,只要有就返回找到的内容,如果没有匹配到就返回None
3)findall()函数
返回一个列表,列表中存放的是所有符合正则表达式的字符串
4)sub()函数
替换符合正则表达式的字符:参数1:正则表达式
参数2:替换后的内容
参数3:要进行替换的内容
下面是正则的几个练习:
1)正则匹配手机号:
# -*- coding:utf-8 -*-import sysreload(sys)sys.setdefaultencoding("utf-8")import rephone = "13545678912"pattern = re.compile("^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\d{8}$")result = pattern.match(phone)if result: print "是手机", resultelse: print "不是手机"print result2)匹配邮箱
# -*- coding:utf-8 -*-import sysreload(sys)sys.setdefaultencoding("utf-8")import reemail = "123@qq.anc.com"pattern = re.compile("([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+")result = pattern.match(email)if result: print "是邮箱"else: print "不是邮箱"print result
3)屏蔽关键字
# -*- coding:utf-8 -*-import sysreload(sys)sys.setdefaultencoding("utf-8")import rebad_words = [ ("毛\s*小\s*明", "毛*明"), ("张小涛", "张*涛"), ("宋小美", "宋*美"),]content = "毛 小 明辅导张小涛的兄弟宋小美学习Python"for bad_word in bad_words: pattern = re.compile(bad_word[0]) content = pattern.sub(bad_word[1], content)print content
常用的正则:
+匹配字符一个或一个以上
\d匹配整数
{10}匹配10次
{1,5}至少匹配1次,至多匹配 5次
| 条件,表示或
() 多个条件用()
^ 以***开头
sub:正则替换内容
\s 匹配空格,tab键....
*表示0个或0个以上
$ 以 结尾
欢迎大家多提意见哦
阅读全文
0 0
- 【正则表达式】正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 一知半解学CubeMX——GPIO:LED
- 《java与模式》-9 建造模式
- 升级macOS High Sierra后cocoapods不能使用的解决办法
- websocket+tomcat实现聊天室功能
- Fiddler抓包教程
- 正则表达式
- React Native 不正确的添加注释时报错的问题
- Python多线程详解
- pageradapter中调用notifyDataSetChanged()无效果
- FL studio 11汉化版-汉化补丁-汉化破解汇总
- 视频资源
- Http持久连接、非持久连接和pipeline连接
- 图片压缩工具Thumbnailator的使用
- 关于input在iOS下会变成圆角的解决办法