1、正则表达式的定义
- 又叫做规则表达式,英语:Regular Expression,在代码中常简写为regex、regexp或RE
- 正则表达式描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。本质是由一系列特殊符号和字符组成的字串。
-
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。
-
正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。
2、产生原因和特点
- 文本处理已经成为计算机常见工作之一
- 对文本内容的搜索,定位,提取是逻辑比较复杂的工作
- 为了快速方便的解决上述问题,产生了正则表达式。
- 优点:方便进行检索修改文本的操作,支持编程语言众多,使用灵活多样。
3、Python re 模块
- re.findall(pattern,string)
- 功能:使用正则表达式匹配字符串,如果正则表达式有分组则只显示子组内容。
- 参数:pattern 正则表达式字符串 string 目标字符串
- 返回值: 返回一个列表 匹配到的内容
import re
s = "my email is Levi@126.com or lvze@tedu.cn"
print(re.findall("\w+@\w+\.\w{2,3}",s))
运行结果:['Levi@126.com', 'lvze@tedu.cn']
- regex = re.compile(pattern,flags=0)
- 功能:生成正则表达式对象
- 参数:pattern 正则表达式
- flags 功能标志位,丰富正则的匹配功能
- 返回值:正则表达式对象
import re
regex = re.compile("abc")
print(dir(regex))
运行结果:['__class__', '__copy__', '__deepcopy__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'findall', 'finditer', 'flags', 'fullmatch', 'groupindex', 'groups', 'match', 'pattern', 'scanner', 'search', 'split', 'sub', 'subn']
- list = regex.findall(string,pos=0,endpox=999)
- 功能:根据正则表达式匹配目标字符串
- 参数:string 目标字符串
- pos 标明从目标字符串的哪个位置开始匹配
- endpos 标明匹配到目标字符串的哪里
- 返回:返回一个列表,内部为匹配到的内容
import re
#re调用findall
s = "abcdfghi"
l = re.findall(r"ab",s)
print(l)
#利用regex对象来调用findall
regex = re.compile(r"abcd")
l = regex.findall(s)
print(l)
运行结果: