学习python仅此一篇就够了(正则表达式,递归)

发布时间:2024年01月21日

正则表达式

  • re.match(匹配规则,被匹配字符串)

从被匹配字符串开头进行匹配,匹配成功返回匹配对象,匹配不成功返回空。

import re

s = "python java c++"
result = re.match("python", s)
print(result) #<re.Match object; span=(0, 6), match='python'>
print(result.span()) #(0, 6)
print(result.group()) #python
  • search(匹配规则,被匹配字符串)

搜索整个字符串,找出匹配的。从前向后,找到第一个后,就停止,不会继续向后。

s = "1python java c++"
result = re.search("python", s)
print(result) #<re.Match object; span=(1, 7), match='python'>
print(result.span()) #(1, 7)
print(result.group()) #python
  • findall(匹配规则, 被匹配字符串)

匹配整个字符串,找出全部匹配项

s = "1python java c++python"
result = re.findall("python", s)
print(result) #['python', 'python']

元字符匹配

字符功能
.匹配任意一个字符除了(\n)
[]匹配[]中的列举的字符
\d匹配数字,即0-9
\D匹配非数字
\s匹配空白,即空格,tab键
\S匹配非空白
\w匹配单词字符,即a-z,A-Z,0-9
\W匹配非单词字符

数量匹配:

字符功能
*匹配前一个规则的字符出现0至无数次
+匹配前一个规则的字符出现1至无数次
?匹配前一个规则的字符出现0次或1次
{m}匹配前一个规则的字符出现m次
{m,}匹配前一个规则的字符至少出现m次
{m,n}匹配前一个规则的字符出现m到n次

边界匹配:

字符功能
^匹配字符串开头
$匹配字符串结尾
\b匹配一个单词的边界
\B匹配非单词边界

分组匹配:

字符功能
|匹配左右任意一个表达式
()将括号中字符作为一个分组

递归

import os

def test():
    print(os.listdir("E:/test")) #['1.txt', '2.txt', 'a', 'b']
    # print(os.path.isdir("E:/test/a")) #判断是否为文件夹
    # print(os.path.exists("E:/test")) #判断指定路径是否存在

def get_from(path):
#从指定的文件夹中获取文件夹列表
    list = []
    if os.path.exists(path):
        for f in os.listdir(path):
            new_path = path + "/" + f
            if os.path.isdir(new_path):
                list += get_from(new_path)
            else:
                list.append(new_path)
    else:
        print(f"指定的目录{path},不存在")
        return []

    return list

if __name__ == '__main__':
    print(get_from("E:/test"))

文章来源:https://blog.csdn.net/m0_66011019/article/details/135727400
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。