(六)Re(正则表达式)库入门
(1)基本定义
- 正则表达式 regular expression, regex, RE
- 正则表达式是用来简洁表达一组字符串的表达式
- 正则表达式是一种针对字符串表达“简洁”和“特征”的思想的工具
- 正则表达式可以用来判断某字符串的特征归属
(2)作用
- 表达文本类型的特征(病毒、入侵等)
- 同时查找或替换一组字符串
- 匹配字符串的全部或部分(最主要的应用)
(3)语法
- 正则表达式由字符和操作符构成
1.常用操作符
2.语法实例
3.经典实例
4.匹配IP地址的正则表达式
(4)Re库
1.Re库介绍
- Re库是Python的标准库,主要用于字符串匹配
- import re
2.表示类型
- raw string类型(原生字符串类型)
- string类型(更繁琐)
- 建议:当正则表达式包含转义符时,使用raw string
# r'text'格式
r'[1-9]\d{5}'
r'\d{3}-\d{8}|\d{4}-\d{7}
# string格式
r'[1-9]\\d{5}'
r'\\d{3}-\\d{8}|\\d{4}-\\d{7}
3.Re库主要功能函数
import re
#pattern : 正则表达式的字符串或原生字符串表达
#repl : 替换匹配字符串的字符串
#string : 待匹配字符串
#count : 匹配的最大替换次数
#maxsplit: 最大分割数,剩余部分作为最后一个元素输出
#flags : 正则表达式使用时的控制标记 ///下附常用标记说明
re.search(pattern, string, flags=0)
re.match(pattern, string, flags=0)
re.findall(pattern, string, flags=0)
re.split(pattern, string, maxsplit=0, flags=0)
re.finditer(pattern, string, flags=0)
re.sub(pattern, repl, string, count=0, flags=0)
#Re库的等价用法
#函数式用法:一次性操作
rst = re.search(r'[1-9]\d{5}', 'BIT 100081')
#面向对象用法:编译后的多次操作
regex = re.compile(r'[1-9]\d{5}')
rst = regex.search('BIT 100081')
#将正则表达式的字符串形式编译成正则表达式对象
regex = re.compile(pattern, flags=0)
4.Re库的Match对象
- Match对象是一次匹配的结果,包含匹配的很多信息
1>Match对象的属性
2>Match对象的方法
3>Match对象实例
5.Re库的贪婪匹配和最小匹配
- 同时匹配长短不同的多项,返回哪一个?
1.贪婪匹配
- Re库默认采用贪婪匹配,即输出匹配最长的子串
2.最小匹配
- 如何输出最短的子串呢?
- 只要长度输出可能不同的,都可以通过在操作符后增加?变成最小匹配