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"))