python--内置模块之正则表达式

本文介绍了Python中的绝对导入和相对导入,绝对导入可通过添加路径或手动方式实现,而相对导入仅用于模块文件内部。软件开发目录规范中,各文件夹有其特定用途。正则表达式是用于匹配字符串的强大工具,文中通过身份证号码验证举例说明其使用。讲解了字符组、特殊符号和量词的概念,并对比了贪婪匹配与非贪婪匹配的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

绝对导入和相对导入

绝对导入:严格按照文件存储路径导入py文件中查找模块。

绝对导入的两种解决方式:1. .append()添加路径,2.手动添加

相对导入:句点符(。).表示当前文件路径,..表示上一层文件路径,能够打破以执行文件为准的规则,只考虑两个文件之间的位置,相对导入只能用在模块文件中,不能在执行文件中使用。

软件开发目录规范

plugin插件
bin文件夹存放启动文件
conf文件夹存放配置文件(通常该文件内的变量名都是大写,参考常量)
lib文件夹存放公共的功能common.py
db文件夹存放数据相关的文件
log文件夹        日志记录文件
core文件夹存放核心代码文件src.py
readme.txt软件说明,广告等
requirements.txt

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

正则表达式模块

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

写法:import re

import re
#写一个验证身份证是否准确的功能
count=0
id_card=input('请输入你的身份证号码: ')
if len(id_card)==18:
    if id_card.count('x')<2:
        print('恭喜已登陆成功')
    else:
        print('请输入正确的身份证号码')
else:
    print('身份证字符串有18位')

#正则表达式验证身份证号是否准确
card=input('请输入你的身份证号码: ')
if re.match('^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$',card):
    print('身份证号码正确')
else:
    print('请输入正确的身份证号码')

字符组:特征使用中括号括起来,字符串默认只能单个字符匹配

【0-9】=0123456789

【a-z】=26个字符小写

【A-Z】=26个字符大写

也可以拼写在一块儿【0-9A-Za—z】

特殊符号:也默认只能单个字符匹配

.匹配换行符以外的任意字符
\d匹配数字
^匹配字符串的开始
$匹配字符串的结尾
a|b匹配字符a或字符b
()匹配括号内的表达式也表示一个组
[...]匹配字符组中的字符
[^...]匹配除了字符组中字符的所有字符

量词:

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

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

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

贪婪匹配和非贪婪匹配

# 带匹配的字符串
    <script>123</script>
# 正则表达式
    <.*>  '''默认贪婪匹配 尽可能多的匹'''
# 将贪婪变为非贪婪 只需要在量词的后面加问号即可
    <.*?> '''非贪婪匹配 尽可能少的匹  结束条件有左右两边决定'''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值