认识正则表达式
正则表达式
'''
正则表达式是一门独立的语言 跟其他编程语言都没有关系!!!!
如果想在python代码中使用正则 需要借助于内置模块re
'''
# 什么是正则表达式?
利用一些特殊的组合去字符串中筛选出符合条件的数据
'''
1.必须是11位
2.必须是纯数字
3.必须符合手机号的排布 15 16 18 19
'''
# 传统方法
phone = input('请输入正确的手机号码:').strip()
if len(phone) == 11:
if phone.isdigit():
if phone.startswith('15') or phone.startswith('16') or phone.startswith('17') or phone.startswith('18'):
print('手机号正确')
else:
print('输入错误')
else:
print('必须是纯数字')
else:
print('请正确输入手机号码')
# 正则表达式
import re
phone = input('请输入正确的手机号码:').strip()
if re.match('^(13|14|15|16|17)[0-9]{9}$',phone):
print('输入正确')
else:
print('输入格式错误!')
字符组
# 特征是使用中括号括起来的 字符串默认只能单个单个字符匹配
[0123456789] # 匹配0到9之间任何一个数字
可以简写为
[0-9]
[a-z] # 匹配小写字母a到字母z其中任意一个字母
[A-Z] # 匹配大写字母A到字母Z其中任意一个字母
[a-zA-Z0-9] # 匹配所有的数字 小写 大写
特殊符号
# 特殊符号默认也只能单个单个字符匹配
. 匹配除换行符以外的任意字符
\d 匹配数字
^ 匹配字符串的开始
$ 匹配字符串的结尾
'''^与$组合使用可以精准限制要查找的数据'''
a|b 匹配字符a或字符b
() 匹配括号内的表达式也表示一个组(不会影响正则表达式的匹配单纯的分组而已)
[...] 匹配字符组中的字符、
[^...] 匹配除了字符组中字符的所有字符
贪婪匹配与非贪婪匹配
# 带匹配的字符串
<script>123</script>
# 正则表达式
<.*> '''默认贪婪匹配 尽可能多的匹'''
# 将贪婪变为非贪婪 只需要在量词的后面加问号即可
<.*?> '''非贪婪匹配 尽可能少的匹配 结束条件有左右两边决定'''
还有很多方式不懂就问百度。