今天我们来讲讲正则表达式,那么什么是正则表达式呢,正则表达式是通过元字符(具有特殊含义的字符)和普通字符(如字母,数字)组合而成的“规则字符串”。语法都是各种符号,不好理解,不好记忆,通用性强,几乎每个语言用法都一样,这样的式子就是正则表达式。
一.我们先说一下正则表达式的三种匹配方式吧:
方式一:re.match(pattern,string,flags) 特点是:只能从开头开始匹配,只能返回第一个匹配成功的内容
方式二:re.search(pattern,string,flags) 特点是:可以整个字符串搜索,只能返回第一个匹配成功的内容
方式三:re.findall(pattern,string,flags) 特点是:可以整个字符串搜索,可以返回所有匹配成功的内容
代码示例:
import re #提前定义函数用于判断结果获取数据 def num(result): if result: print(f'匹配成功:{result.group}') else: print(f'匹配失败') #2.匹配数据 #已知数据 html_str="""<html><head>你好</head><body>你好</body></html>""" #方式1:match匹配html result1= re.match('html',html_str) num(result1) #方式二:search匹配html result2=re.search('html',html_str) num(result2) #方式3:findall匹配html result3=re.findall('html',html_str) print(result3)二,简单介绍几个常用的正则表达式的匹配规则:
规则一:匹配单个字符 eg:. 匹配任意1个字符
\d 匹配任意1个数字
\w 匹配任意1个正常字符(字母,数字,下划线,汉字)
规则二:匹配多个字符 eg: * 匹配前一个字符出现0次或者无限次 次数>=0
+ 匹配前一个字符出现1次或者无限次 次数>=1
? 匹配前一个字符出现0次或者1次 次数== 0 或者 次数 == 1
{x} 匹配前一个字符出现x次 次数==x
{x,y} 匹配前一个字符出现x到y次 次数>=x 并且 次数<=y
规则三:匹配开头和结尾 eg:^匹配开头 $匹配结尾 注意: 两个一般一起使用,起到限制作用
规则四:匹配分组相关内容 eg: () 分组,默认产生从1开始的组号
(?P<别名>) 给当前分组起别名
(?P=别名) 引用对应别名的分组内容
三.正则表达式的一些优点:
1,强大的模式匹配能力
2,高度简洁高效
3,标准化和通用性
4,执行效率高(对于复杂操作)
5,广泛应用于数据处理
注意:大家平时可以在Reges101或者RegExr在线工具学习