正则表达式的简单介绍

正则表达式image

"""
正则表达式是一门独立的语言 跟其他编程语言都没有关系!!!
image

如果想在python代码中使用正则 需要借助于内置模块re
"""

什么是正则表达式?image

利用一些特殊符号的组合去字符串中筛选出符合条件的数据

例题:image

"""
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('18') or phone.startswith('19'):
#             print('手机号正确')
#         else:
#             print('格式不对')
#     else:
#         print('手机号必须是纯数字')
# else:
#     print('必须是11位')
# 这样会让代码很冗余

image

而在正则表达式模块中,我们只需要短短6行代码实现这个功能:image


import re
phone = input('请输入您的手机号>>>:').strip# 获取用户输入的字符串格式,
if re.match('^(15|16|18|19)[0-9]{9}$',phone): # 如果phone字符串起始是以(15|16|18|19)开头,格式是以0-9为单个索引的值,之后再补9个索引对应值为结尾,则打印格式正确。
	print('格式正确')
else:# 否则通知用户格式错误
    print('格式错误')

字符组

image

# 特征是使用中括号括起来的  字符串默认只能单个单个字符匹配
[0123456789]  # 匹配0到9之间任何一个数字
    可以简写为
    [0-9]
[a-z]  # 匹配小写字母a到字母z其中任意一个字母
[A-Z]  # 匹配大写字母A到字母Z其中任意一个字母
[a-zA-Z0-9]  # 匹配所有的数字 小写 大写

特殊符号

image

# 特殊符号默认也只能单个单个字符匹配
. 		匹配除换行符以外的任意字符
\d		匹配数字
^		匹配字符串的开始
$		匹配字符串的结尾
		"""^与$组合使用可以精准限制要查找的数据"""
a|b		匹配字符a或字符b
()		匹配括号内的表达式也表示一个组(不会影响正则表达式的匹配单纯的分组而已)
[...]	匹配字符组中的字符
[^...]	匹配除了字符组中字符的所有字符

量词image

1.表达式在没有量词修饰的情况下 都是单个单个匹配
2.量词必须结合(字符串、特殊符合等)一起使用 不能单独出现
3.量词只能影响前面的一个表达式(ab+ 只能影响b)

*		重复零次或更多次
+		重复一次或更多次
?		重复零次或一次
{n}		重复n次
{n,}	重复n次或更多次
{n,m}	重复n到m次

"""
正则表达式中的量词默认都是'贪婪匹配'
"""

贪婪匹配与非贪婪匹配image

# 带匹配的字符串
	<script>123</script>
# 正则表达式
	<.*>  '''默认贪婪匹配 尽可能多的匹'''# 返回结果是1个:<script>123</script>
# 将贪婪变为非贪婪 只需要在量词的后面加问号即可
	<.*?> '''非贪婪匹配 尽可能少的匹  结束条件有左右两边决定'''# 返回结果是:<script>,</script>两个。
1.在原生的正则表达式中取消转义推荐使用\
转义符\   每个\只能取消一个字符的转义

在正则表达式中,匹配\n会匹配到换行,取消转义要用2个\\

而取消\\n 去匹配\n  需要用到3个\\\n
2.
python中取消转义推荐使用r'\n\a\t'(也可以使用\)

小结

一些常见的正则不需要自己写 直接百度搜索即可。CV战士可不是和你闹着玩的。

image

posted @ 2021-11-24 18:09  林先生。  阅读(55)  评论(0)    收藏  举报