提供给他人做视频解析的网站源码,企业网站的劣势,旅游网页设计论文5000字,一般购物网站怎么做推广目录
正则表达式
python正则表达式方法
match
search
findall
finditer
compile
元字符匹配
元字符
量词
贪婪匹配和惰性匹配
正则表达式的group
语法
案例 正则表达式
正则表达式又称规则表达式#xff0c;是使用单个字符串来描述、匹配某个句法规则的字符串…目录
正则表达式
python正则表达式方法
match
search
findall
finditer
compile
元字符匹配
元字符
量词
贪婪匹配和惰性匹配
正则表达式的group
语法
案例 正则表达式
正则表达式又称规则表达式是使用单个字符串来描述、匹配某个句法规则的字符串常被用来检索、替换那些符合某个模式的文本正则表达式就是使用元字符进行排列组合用来匹配字符串并通过规则去验证字符串是否匹配python正则表达式使用re模块并基于re模块的三个基础方法来做正则匹配match、search、findall
python正则表达式方法 使用时先导入re模块import re match 语法变量re.match(匹配规则,被匹配的字符串) 注意从被匹配的开头进行匹配匹配成功则返回匹配对象匹配不成功则返回None 取得下标变量.span() 取得匹配字符串变量.group() #导入re模块
import re
spython language
resultre.match(python,s)
print(result)#re.Match object; span(0, 6), matchpython
print(result.span())#匹配的下标
print(result.group())#匹配的字符串
search 语法变量re.search(匹配规则,被匹配的字符串) 作用搜索整个字符串找出匹配的从前向后找到第一个后就停止不会继续向后整个字符串都找不到就返回None 取得下标变量.span() 取得匹配字符串变量.group() #导入re模块
import re
si like python very much python yyds
resultre.search(python,s)
print(result)#re.Match object; span(7, 13), matchpython
print(result.span())
print(result.group())
findall 语法列表对象re.findall(匹配规则,被匹配的字符串) 作用匹配整个字符串找出全部匹配项找不到则返回list:[]
#导入re模块
import re
si like python very much python yyds
resultre.findall(python,s)
print(result)#[python, python]
finditer 语法列表对象re.findall(匹配规则,被匹配的字符串) 作用匹配字符串中的所有内容返回的是迭代器。
import re
resultre.finditer(r\d,我的电话号码是10086女朋友电话号码是10010)
print(result)#callable_iterator object at 0x0000029E66A093C0
for i in result:print(i.group())
# 10086
# 10010
注意
字符串r标记表示当前字符串是原始字符串即内部的转义字符无效而是普通字符从迭代器中拿到内容需要i.group()
compile
前言正则表达式可能会被写的很长此时复杂的正则可能有需要反复的使用此时就可以把该正则提前加载好后面用的时候直接拿来用就能够提高一点点效率 语法预加载正则表达式re.compile(r需要编译的正则表达式) import re
#预加载正则表达式
objre.compile(r\d)#很复杂的正则表达式
resultobj.findall(我的电话号码是10086女朋友电话号码是10010)
print(result)#[10086, 10010]
元字符匹配
元字符
含义具有固定含义的特殊符号
字符功能.点匹配任意一个字符除了\n\.匹配自身[]匹配[]中列举任意一个字符[^……]匹配除了字符组中的所有字符\d匹配数字即0-9\D匹配非数字\s匹配空白即空格、tab键\S匹配非空白\w匹配大小写英文字母数字及下划线单词字符\W匹配非单词字符\n匹配一个换行符\t匹配一个制表符^匹配字符串开头$匹配字符串结尾|匹配左右任意1个表达式()匹配括号里的内容
注意元字符仅能匹配单个字符
量词
含义控制前面元字符出现的次数
量词功能*匹配前一个规则字符重复出现了0到无数次匹配前一个规则字符重复出现了1到无数次?匹配前一个规则字符重复出现了0或1次{m}匹配前一个规则字符重复出现了m次{m,}匹配前一个规则字符重复出现了m到无数次{m,n}匹配前一个规则字符重复出现了m到n次
贪婪匹配和惰性匹配
匹配方式功能.*贪婪匹配尽可能多的匹配字符.*?惰性匹配尽可能少的匹配字符
举例玩吃鸡游戏晚上一起上游戏干嘛呢打游戏啊
玩.*游戏玩吃鸡游戏晚上一起上游戏干嘛呢打游戏玩.*?游戏 玩吃鸡游戏
正则表达式的group
语法 给匹配到的分组正则命名(?P名字正则表达式) 获取对应分组匹配的内容match对象.group(名字) 案例
import re
sdiv classaspan id1周杰伦/span/dirdiv classbspan id2郭麒麟/span/dirdiv classcspan id3周星驰/span/dirdiv classdspan id4刘德华/span/dirobjre.compile(rdiv class(?Pch.*?)span id(?Pnum\d)(?Pname.*?)/span/dir,re.S)
#注意这里的re.S代表让.也可以匹配换行符
resultobj.finditer(s)
for i in result:print(i.group(name))# 周杰伦 郭麒麟 周星驰 刘德华