html5网站有哪些,大丰市市城乡建设局网站,wordpress 添加链接地址,自己做网站 搜索功能开发一、正则表达式
1.基础匹配
学习目标#xff1a;了解什么是正则表达式#xff0c;掌握re模块的基础使用 就是一种规则的定义#xff0c;通过规则去验证给定的目标是否符合定义的规则。
正则的三个基础方法 match
match是匹配开头#xff0c;开头有python就算匹配成功了解什么是正则表达式掌握re模块的基础使用 就是一种规则的定义通过规则去验证给定的目标是否符合定义的规则。
正则的三个基础方法 match
match是匹配开头开头有python就算匹配成功没有就是不成功只要开头不匹配后面的根本不关心。
span(0,6)说的是下标从0到6 search 从头开始找只找一个后面的不予理会 findall 找出来所有相匹配的数据以列表的形式输出出来。 演示python正则表达式re模块的3个基础匹配方法import re
s 1python itheima python
# match 从头匹配
result re.match(1python,s)
print(result)
print(result.span())
print(result.group())
# search 搜索匹配
result re.search(python,s)
print(result)# findall 搜索全部匹配
result re.findall(python,s)
print(result)
总结 2.元字符匹配
学习目标掌握正则表达式的各类元字符规则了解字符串的r标记的作用。
单字符匹配 因为反斜杠\有具体的含义可能代表转义字符所以给字符串一个r标记表示字符串中转义字符无效就是普通字符的意思。
找出全部的数字 找出特殊符号 \W(大写的W) 找出全部英文字母
使用[][]里面可以写想要的规则范围可以自己规定范围 元字符匹配 小练习 findall如果我们的正则表达式里面有分组就会把每一个组的结果都给你列出来 因此我们也可以使用match 演示python正则表达式使用元字符进行匹配import re# 匹配账号只能由字母和数字组成长度限制6到10位
# r ^[0-9a-zA-Z]{6,10}$ # ^ $表示从头开始匹配匹配到最后结尾。在正则里面不要随意加空格。
# s 124343
# s1 adhalod
# s2 2s233s2
# s3 ...d7dd
# print(re.findall(r,s))
# print(re.findall(r,s1))
# print(re.findall(r,s2))
# print(re.findall(r,s3))
# 匹配QQ号要求纯数字长度5~11第一位不为0
# r ^[1-9][0-9]{4,10}$ # 不写范围就是默认是一个数
# s 013131
# s1 347834
# s2 233ew23
# print(re.findall(r,s))
# print(re.findall(r,s1))
# print(re.findall(r,s2))
# 匹配邮箱地址只允许qq、163、gmail这三种邮箱地址
# 邮箱地址大体是{内容}.{内容}{内容}.{内容}.{内容} acd.cdac.acdqq.adf
r r(^[\w-](\.[\w-])*(qq|163|gmail)(\.[\w-])$)
s s.ds.dsada.asqq.aif.fdsiad
print(re.match(r,s))总结 二、递归
学习目标掌握什么是递归掌握递归案例的开发。 那么什么样的场景会用到递归呢 比如来说如果你是文件夹我就再调用自己再进去看看如果你不是我就收集文件
就是说一个文件夹进去发现是文件就返回给上一层是文件夹就在进入这个文件夹看是文件还是文件夹不断的返回给上一层最后就把全部的文件都收集到了
说起来比较抽象让我们用代码演示一下。
实战演示
大家也可以自己创建一个如图所示的文件夹来试试代码能否正常运行。 演示python进行排序
需求通过递归找出一个指定文件夹的全部文件思路写一个函数列出文件夹内的全部内容如果是文件就收集到list
如果是文件夹就递归调用自己再次判断import os
def test_os():演示os模块的三个基础方法print(os.listdir(D:/test)) # 可以帮我们列举出指定文件夹里面有哪些内容print(os.path.isdir(D:/test/a)) # 判断你给的路径是否是一个文件夹print(os.path.exists(D:/test)) # 判断指定路径是否存在def get_files_recursion_from_dir(path):print(f当前判断的文件夹是{path})file_list []从指定的文件夹中使用递归的方式获取全部的文件列表:param path:被判断的文件夹:return:list包含全部的文件如果目录不存在或者无文件就返回一个空listif os.path.exists(path):for f in os.listdir(path):new_path path / fif os.path.isdir(new_path):# 进入到这里表示这个目录是文件夹不是文件file_list get_files_recursion_from_dir(new_path)else:file_list.append(new_path)else:print(f指定的目录{path}不存在)return []return file_list
if __name__ __main__:print(get_files_recursion_from_dir(D:/test)) 总结