正则表达式的概念
_正则表达式本质上就是使用一些符号的组合产生特殊的含义去字符串中筛选出符合条件的数据
import re
num = input('请输入您的手机号码》》》:').strip()
if re.match('^[13|15|17|18|19][0-9]{9}',num):
print(num)
else:
print('输入不合法')
------------
num = input('请输入您的手机号码》》》:').strip()
if num.isdigit():
if len(num) == 11:
if num.startswith('13') or num.startswith('15') or num.startswith('17') or num.startswith('18') or num.startswith('19'):
print(int(num))
else:
print('手机号码开头不对')
else:
print('手机号码必须是11位数字')
else:
print('手机号码必须是纯数字')
正则表达式之字符组
正则表达式在线测试网址
在线测试工具 http://tool.chinaz.com/regex/
字符组内容
------------
[0-9] 匹配0到9之间的任意一个数字(包括0和9)
全称是:[0123456789]
[A-Z] 匹配A到Z之间的任意一个字母(包括A和Z)
全称是:[ABCD...WXYZ]
[a-z] 匹配A到Z之间的任意一个字母(包括a和z)
全称是:[abcd...wxyz]
在中括号内编写的多个数据值彼此都是或的关系
[0-9a-zA-Z]
数字、小写字母、大写字母都可以
正则表达式之特殊符号
------------
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\W 匹配非字母或数字或下划线
\d 匹配数字
^ 匹配字符串的开头
$ 匹配字符串的结尾
ps:^与$的组合能够明确的限制想要查找的具体数据 ^9$
a|b 匹配字符a或字符b
ps:管道符|在很多场景下的意思都是或
() 给正则表达式分组 不影响正则表达式的匹配
ps:用于后续的正则起别名 分组获取对应数据
[] 匹配字符组中的字符
[^] 匹配除了字符组中字符的所有字符
正则表达式之量词
量词不可以单独使用 必须要跟在表达式后面 而且只能影响表达式左边的那个数据
* 重复零次或更多次(默认就是尽可能多)
+ 重复一次或更多次(默认就是尽可能多)
? 重复零次或一次(默认就是一次)
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
正则表达式之练习题
海. 海燕海鸥海豚 结果 海燕 海鸥 海豚
------------
^海. 海燕海鸥海豚 结果 海燕
------------
豚$ 海燕海鸥海豚 结果 豚
------------
海.$ 海燕海鸥海豚 结果 海豚
------------
海.* 海燕海鸥海豚 结果 海燕海鸥海豚
------------
海[^和]* 海燕海鸥海豚 结果 海燕海鸥海豚
------------
海[鸥]* 海燕海鸥海豚 结果 海 海鸥 海
贪婪匹配与非贪婪匹配
表达式 :<.*>
文本 :<海燕>海鸥(123)<海豚>
结果 :<海燕>海鸥(123)<海豚>
------------
表达式 :<.*?>
文本 :<海燕>海鸥(123)<海豚>
结果: <海燕> <海豚>
小技巧:以后我们在使用贪婪匹配或者非贪婪匹配的时候一般都是用.*或者.*?
并且结束的标志有上述符号左右两边添加的表达式决定
取消转义
正则表达式中取消斜杠与字母的特殊含义 就是在斜杠前面加斜杠
\\n \n
\\\\n \\n
在python中有更加简便的写法
r'\n'
r'\\n'
正则表达式之实战
0?(13|14|15|17|18|19)[0-9]{9}
------------
\d{17}[\d|x]|\d{15}
------------
\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}
------------
[1-9]([0-9]{5,11})
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)