网站上传安装,前端页面设计流程,工信部怎么查网站备案,仿站小工具 wordpress文章目录 #x1f340;多字符匹配#x1f340;匹配规则的代替#x1f340;特殊的匹配#x1f340;特殊的匹配plus#x1f340;总结 #x1f340;多字符匹配
星号#xff08;*#xff09;#xff1a;匹配0个或者多个字符
import retext 111-222-333
result re.matc… 文章目录 多字符匹配匹配规则的代替特殊的匹配特殊的匹配plus总结 多字符匹配
星号*匹配0个或者多个字符
import retext 111-222-333
result re.match([\d], text) # 没有*匹配第一个
result1 re.match([\d]*, text) # 有*从起始位置开始匹配0或者多次
result2 re.match([-\d]*, text) # 有*从起始位置开始匹配0或者多次
result3 re.match([-]*, text) # 有*从起始位置开始匹配0或者多次
print(result.group(),len(result.group()))
print(result1.group(),len(result1.group()))
print(result2.group(),len(result2.group()))
print(result3.group(),len(result3.group()))运行结果如下
注意:匹配不出来只不过是空并不会报错 加号匹配一个或者多个
text Q111-222-333
result re.match([Q\d], text)
result1 re.match([\d], text)
print(result.group(),len(result.group()))
print(result1.group(),len(result1.group()))运行结果如下 注意有对[]里的内容匹配一次或者多次至少一次、从起始位置开始
问号匹配0个或者1个
text Q111-222-333
result re.match([Q\d]?, text)
result1 re.match([\d]?, text)
print(result.group(),len(result.group()))
print(result1.group(),len(result1.group()))运行结果如下 注意从起始位置开始和*有一点相近
{m}匹配指定个数m
text Q111-222-333
result re.match([Q\d]{2}, text)
result1 re.match([Q\d]{5}, text)
print(result.group(),len(result.group()))
print(result1.group(1),len(result1.group()))运行结果如下 注意从起始位置
{m,n}匹配m到n个默认匹配最多次
text 111-222-333
text1 111-2^22-333
result re.match([-\d]{2,8}, text)
result1 re.match([-\d]{2,8}, text1)
print(result.group())
print(result1.group())运行结果如下
注意若内容存在不属于规则的内容则停止直接输出
匹配规则的代替
\d------[0-9]匹配所有的数字
text 111-222-333
result re.match([-0-9]*, text)
print(result.group())运行结果如下 注意这里经常与*进行搭配进而匹配多次数字
\D----[^0-9]匹配所有的非数字
text 111-222-333
result re.match([^0-9], text)
print(result.group())运行结果如下 注意这里经常配合1次或多次匹配1次或多次非数字字符其实也可以配合*0次或多次匹配0次或多次非数字字符
\w-----[0-9a-zA-Z_]:匹配所有数字、字母、下划线
text 111-222-333
result re.match([0-9a-zA-Z_], text)
print(result.group())运行结果如下 注意减号不在匹配范围之内
\W-----[^0-9a-zA-Z]:匹配所有非数字、字母和下划线
text 111-222-333
result re.match([^0-9a-zA-Z_], text)
print(result.group())运行结果如下 注意这里和之前那个有相似之处主要是因为这里的是匹配至少一次然而一开始检索就没找到自然报错了
[\d\D]、[\w\W]匹配所有的字符
text 111-222-333
result re.match([\w\W], text)
print(result.group())运行结果如下 所以说还是这个牛吧 特殊的匹配 例子如下 text 111-222-333
text1 ....111-222-333
result re.match([.], text)
result1 re.match(., text)
result2 re.match([.], text1)
print(result1.group())
print(*)
print(result2.group())
print(*)
print(result.group())运行结果如下 注意去掉中括号后点表示所有字符再配上匹配所有字符但是中括号加上点后代表的就是匹配点了然而text1并没有所有遵循的规则至少一个所以报错 感兴趣的小伙伴可以自己试着来将手机号、邮箱、身份证号码的规则自己写出来 特殊的匹配plus
全局遍历
text Hello HeWord
result re.search(He, text)
print(result.group())运行结果如下 注意search是从左到右进行字符串遍历找到就返回若后续再出现也不再返回结果
$以某某为结尾
text HelloHeWord163.com
result re.search([\w][a-z0-9][.]com$, text)
print(result.group())运行结果如下 注意以com为结尾提取数据若不是以该词结尾就会报错
|匹配多个表达式或者字符串
text https://www.baidu.com
result re.search([https|http],text)
print(result.group())运行结果如下
text https://www.baidu.com
result re.search([https|http],text)
print(result.group())运行结果如下
text https://www.baidu.com
result re.search((https|http),text)
print(result.group())运行结果如下 综上所述中括号是将里面看成一个字符串小括号则以|为标准分层若干字符串
总结 本节介绍了多字符匹配其中包括星号、加号等匹配规则的代替例如\d可以使用[0-9]代替使用以及特殊的匹配。下节介绍贪婪模式与非贪婪模式曾有大佬说明不了解贪婪模式和非贪婪模式就无法进行爬虫 如果没看过正则表达式详解掌握强大的文本处理工具二的小伙伴可以看看感谢支持 挑战与创造都是很痛苦的但是很充实。