看了正则表达式的基础,发现正则表达式好像并没有很难~
(一)正则表达式的概念
以下图片来源于中国大学mooc嵩天老师的课件
regular expression regex Re
用来简洁表达一组表达式的方式;
通用的字符串表达框架;
针对字符串表达“简洁”和“特征”思想的工具
在文本处理中十分常用:
1.表达文本类型的特征(病毒、入侵等)
2.同时查找或替换一组字符串
3.匹配字符串的全部或者部分
正则表达式的使用:
编译:将符合正则表达式语法的字符串转化成正则表达式特征。
(二)正则表达式的语法
由字符和操作符组成
**
关于例中简单小结:
1.如果字符串无长度限制,要以^开始,以$结束
2.任意位置的字符内容任意,且可有可无,用*
3.任意位置的字符内容任意,且某位置的字符内容任意且必须存在,用+
4.对于正整数的正则表达式
比较有意思,正整数不能为0
总有一个位置不能为0,该位置前面或者后面是否有0或者是否有值都ok
5.ip地址以点分隔,最后一个不含点
re库的基本使用
表示类型
re是python的标准库,主要用于字符串匹配
import re
re 有raw string和 string两种表示类型
raw string :r"text", 该类型不包含对转义符再次转义的字符串
一些字母前加""来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符
string:当字符串包含转义符\时,用\表示
所以,在文件路径中 如果不用r就用\
建议:正则表达式包含转义符时,建议使用raw string
主要功能函数及等价函数
主要功能函数介绍:
第一个结果返回空值
去除if语句,第二个结果返回错误,match没有group的属性
第三个结果换了100081和bit的位置则返回出结果
match和search的区别:
match()函数只检测字符串开头位置是否匹配,匹配成功才会返回结果,否则返回None。
search()函数会在**整个字符串内查找模式匹配,**只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。
总结:
如果对匹配的结果进行使用 ,一定要用if语句判断match的结果是不是空的,如果是空的,就不能调用后面的方法。
match对象介绍
re库的贪婪匹配和最小匹配
如果在匹配中,待匹配字符串包含多个正则表达式的字符串,则输出匹配最长的子串
即贪婪匹配。
想要匹配最小的,可以在操作符后增加?