基础:正则表达式方便理解

# 导入re模块
import re

# re.match(正则表达式,需要处理的字符串)
ret = re.match(r"hello" ,"hello world")
print(ret)
# [] 判断中括号数据
# .*  点:任意   * 
ret = re.match(r"[12345678].*", "4速度与激情") 
print(ret)
[] 匹配[]中列的字符 
\d 匹配(0,9)数字
\w 匹配单词字符 
\s 匹配空格
\D 小的相反
\S 小的相反
\W 小的相反
. 等价任意1个(除了\n)

匹配多个字符串:问号/大括号/星号/点匹配反斜\n
\d{1,2} 匹配来约束定义是数,如:手机号:
* 匹配任意个数,即可有可无
{} 约束个数
“”“”“” 匹配所用不换行
+ 匹配前一个字符出现1次或者无限次,即至少有1次
?匹配前一个字符出现1次或者0,即至少有1次,要么没有
{m} 匹配就一个字符出现 m次 
{m,n} 匹配就一个字符出现 m次到次
注意:
/n 不能匹配
re.S 想匹配需要加
^$ 从头匹配到屋
| 或(左右一边)
(ab) 将括号中的字符作为一个分组
\nam 引用分组num匹配到的字符串
(?P<name>)  分组起名 
(?P=name)  引用别名为name分组匹配到的字符串
match 匹配从头开始
search (位置不定)匹配字符串:
sub  替换多个 注意:必须返回字符串  
findall  返回列表
splist  切割字符串
+? 变非贪婪
*? 变非贪婪
?? 变非贪婪
{1,3}? 变非贪婪
ret = re.match(r".*[1-8]", "速度与激情8") 
print(ret)
# 中括号也可以字母
ret = re.match(r".*[1-8a-zA-Z]", "速度与激情D") 
print(ret)
# {}大括号约束定义是数:如手机号
ret = re.match(r"\d{11}", "13971052605") 
print(ret)
# {}大括号约束定义是数:如手机号
# 匹配电话号码是否正确
ret = re.match(r"027-?\d{8}", "027-65503097") 
print(ret)
# {}大括号约束定义是数:如手机号
# 匹配电话号码是否正确
# 如果是7,8位的电话号码,如下:
ret = re.match(r"\d{3,4}-?\d{7,8}", "0270-65503097") 
print(ret)
# .* 匹配所有字符串 
# 结果:为什么dfsdfsdfsdf是这个结果?
a = """dfsdfsdfsdf
sdf
sdfsdf
sdfsdfsdfsdfsdf
sdf
sdfsdfsdfsdgdfhgfhsgd
dsfaffasf
"""
ret = re.match(r".*", a)
print(ret)
# 想匹配需要加  re.S
a = """dfsdfsdfsdf
sdf
sdfsdf
sdfsdfsdfsdfsdf
sdf
sdfsdfsdfsdgdfhgfhsgd
dsfaffasf
"""
ret = re.match(r".*", a,re.S )
print(ret)
#匹配出,变量名是否有效
names = ["name1", "_name", "2_name", "__name__"]
for k in names:
    ret = re.match(r"[a-zA-Z_][a-zA-Z_0-9]*",k)
    if ret:
        print("变量名 %s 符合要求%s" % (k,ret.group()))
    else:
        print("变量名 %s 非法"%k)

# 变量名 name1 符合要求name1
# 变量名 _name 符合要求_name
# 变量名 2_name 非法
# 变量名 __name__ 符合要求__name__
#匹配出,变量名是否有效
# ^ $ 从头匹配到屋
names = ["name1", "_name", "2_name", "__name__"]
for k in names:
    ret = re.match(r"^[a-zA-Z_][0-9a-zA-Z_]*$",k)
    if ret:
        print("变量名 %s 符合要求%s"%(k,ret.group()))
    else:
        print("变量名 %s 非法"%k)
#匹配出,变量名是否有效
# ^ $ 从头匹配到屋
names = ["name1", "_name", "2_name", "__name__"]
for k in names:
    ret = re.match(r"^[a-zA-Z_][0-9a-zA-Z_]*$",k)
    if ret:
        print("变量名 %s 符合要求%s"%(k,ret.group()))
    else:
        print("变量名 %s 非法"%k)

# 变量名 name1 符合要求name1
# 变量名 _name 符合要求_name
# 变量名 2_name 非法
# 变量名 __name__ 符合要求__name__
# 匹配多个邮箱地址,如:126,qq,.....
email = input("请输入邮箱地址:")
ret = re.match(r"[a-zA-Z_0-9]{4,20}@(163|126|qq)\.com$\.com$", email)
if ret:
    print("%s符合"% email)
else:
    print("%s不符合"% email)

# 请输入邮箱地址:15088842598@163.comcom
# 15088842598@163.comcom不符合
这里写代码片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值