通配符的使用
* : 0个到无穷多个任意字符
? :一个必定存在的任意字符
. :当前路径
.. :上一级路径
[0-9]:0到9所有数字
[a-z]:a到z所有小写字母
[A-Z]:A到Z所有大写字母
[a-zA-Z]:所有字母
官方参考代码:
>>> import glob
>>> glob.glob('./[0-9].*')
['./1.gif', './2.txt']
>>> glob.glob('*.gif')
['1.gif', 'card.gif']
>>> glob.glob('?.gif')
['1.gif']
>>> glob.glob('**/*.txt', recursive=True)
['2.txt', 'sub/3.txt']
>>> glob.glob('./**/', recursive=True)
['./', './sub/']
>>> import glob
>>> glob.glob('*.gif')
['card.gif']
>>> glob.glob('.c*')
['.card.gif']
正则表达式常用逻辑及方法
# re: regular experssion ==== 正则表达式
# 作用: 对于字符串进行处理, 会检查这个字符串内容是否与你写的正则表达式匹配,
如果匹配, 拿出匹配的内容;
如果不匹配, 忽略不匹配内容;
# 学习正则的规则:
import re
s = "kiosk/home/kiosk/westosanaconda2/envs/blog/bin/python3.6/home/kiosk/Desktop/day25"
# s.find('westos')
# ***************************findall方法********************************
# 1. 编写正则的规则
pattern1 = r'westos'
pattern2 = r'kiosk'
# 2. 通过正则去查找匹配的内容
print(re.findall(pattern1, s))
print(re.findall(pattern2, s))
# ************************match********************************
# match尝试从字符串的起始位置开始匹配,
# - 如果起始位置没有匹配成功, 返回一个None;
# - 如果起始位置匹配成功, 返回一个对象;
print(re.match(pattern1, s))
matchObj = re.match(pattern2, s)
# 返回match匹配的字符串内容;
print(matchObj.group())
# **********************search**********************
# search会扫描整个字符串, 只返回第一个匹配成功的内容;
# - 如果能找到, 返回一个对象, 通过group方法获取对应的字符串;
match1Obj = re.search(pattern1, s)
print(match1Obj.group())
match2Obj = re.search(pattern2, s)
print(match2Obj.group())
正则表达式特殊字符类
字符匹配:
r'westos'
字符类:
[pP]ython
westos[pP]
[aeiou]
[a-z]
[A-Z]
[a-zA-Z0-9]
[^aeiou]
[^0-9]