正则表达式

软件开发目录规范

目录规范并无固定的要求,只要符合清晰可读即可

bin文件夹
	存放一系列启动文件(当启动文件很少或者只有一个的时候也可以直接写在外面)
		start.py

conf文件夹
	存放一系列配置文件
		settings.py(一般情况下该文件内的变量名都是大写)

lib文件夹
	存放公共的功能
		common.py

db文件夹
	存放数据相关文件
		userinfo.txt

log文件夹
	存放日志记录文件
		log.txt

core文件夹
	存放项目核心代码文件
		src.py

readme文件
	存放说明相关信息(类似于说明书 广告 章程)

requirements.txt
	存放项目所需的第三方模块及版本号

正则表达式

> 正则表达式是一门独立的语言,跟其他编程语言都没有关系
如果想在python代码中使用正则,需要借助于内置模块re

什么是正则表达式?
	利用一些特殊符号的组合去字符串中筛选出符合条件的数据

"""
验证手机号码
	1. 必须是11位
	2. 必须是纯数字
	3.  必须符合手机号的排布
"""

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位')

import re
phone_number = input('请输入你的手机号:')
if re.match('^(13|14|15|18)[0-9]{9}$', phone_number):
    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
	()		匹配括号内的表达式,也表示一个组(不会影响正则表达式的匹配单纯的分组而已)
	[...]	匹配字符组中的字符
	[^...]	匹配除了字符组中的字符的所有字符

量词

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

*		重复零次或更多次
+		重复一次或更多次
?		重复零次或一次
{n}		重复n次
{n,}	重复n次或更多次
{n,m}	重复n到m次
"""
正则表达式中的量词默认都是'贪婪匹配'
"""

贪婪匹配与非贪婪匹配

# 带匹配的字符组
	<script>123</script>

# 正则表达式
	<.*>		# 默认贪婪匹配	尽可能多的匹

# 将贪婪变为非贪婪	只需要在量词的后面加问号即可
	<.*?>		# 非贪婪匹配	尽可能少的匹	结束条件由左右两边决定 			

取消转义

在原生的正则表达式中取消转义推荐使用(每个\只能取消一个字符的转义)
在python中取消转义推荐使用r’\n\a\t’(也可以使用)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值