Python基础知识学习 第十一天 笔记
第十一节课
典型场景
数据验证
文本扫描
文本提取
文本替换
文本分割
概念
regular expression
一种文本模式 ,描述在搜索文本时要匹配的一个或多个字符串
语法
字面值
普通字符
需要转义
\
.
$
|?
^
*
+
()[]{}
元字符
匹配
单字,预定义元字符
. 除\n以外所有字符
\d数字,[0-9]
\D [^0-9] ^是去反的意思
\s是匹配空白字符 \t\n\r\f\v
\S 非空白字符 [^\t\n\r\f\v]
\w 字母数字字符 [a-zA-Z0-9_]
\W 非字母数字字符 [^a-zA-Z0-9_]
批量备选
| yes|no
量词(字符、元字符,字符集如何重复)
? 0或1次
* 0或多次
+1或多次
特定
{3,5 范围次数}
{n,m} 范围次数
{n} n 次
{,m} 最多m次
贪婪和非贪婪
贪婪(默认):尽量匹配最大的范围结果
非贪婪
尽量匹配最小的范围结果
方法:量词后追加?
例:
??
+?
*?
边界匹配
^ 行首
$ 行尾
\b 单词边界
\B 非单词边界
模块 re
regeobject 模式对象,表现编译后的正则表达式(编译为字节码并缓存)
re.compile(r’模式’) r是忽略转义用的
pattern.findall(text)
查找所有非重叠匹配项
返回list
.search (string [,pos[,endpos]])
任意位置
返回 matchobject
.finditer() 返回可迭代对象
查找所有匹配项
返回包括matchobject迭代器
.match (string [,pos[,endpos]])表示被匹配模式
匹配,从起始位置
返回 matchobject
group编组
.groups()
返回包含所有子分组得元组
.start()
返回特定分组的起始索引
.end()
返回特定分组的终止索引
.span()
返回特定分组的起止索引的元组
.groupdict()
以字典表形式返回分组名以及结果
.group()
0或空是整体匹配
有参数是特定的匹配
应用
字符串操作
.spilt(string,maxplit=0) 分割字符串
.sub(repl,string , count=0) 替换字符串
.subn(repl,string , count=0) 替换字符串并返回统计量
编译标记
改变正则的默认行为
re.I 忽略大小写
re.M 匹配多行
re.S 指定匹配所有字符,包括\n
模块级别操作
re.purge()
re.escape()
概念
命令行工具
shell脚本
系统管理
系统模块
sys
提供一组功能映射python运行时的操作系统
os
提供跨平台可移植的操作系统编程接口
.path 提供文件及目录工具的可移植编程接口
sys
平台与版本
sys.path
sys.platform
sys.version
sys.modules
观察错误细节
sys.exc_info() 获取最后一次异常细节
traceback.print_tb(sys.exc_info()[2])
命令行参数
sys.argv
sys标准流
sys.stdin 标准输入流 默认等同于 input()
sys.stdout 标准输出流 默认等同于 print()
sys.stderr 标准错误流
os
shell变量
os.environ
管理工具
.getcwd()获取当前工作目录
.listdir(path) 列举目录内容
.chdir(path) 改变工作目录
.getpid() 获取当前进城pid
.getppid() 获取当前父进程pid
运行shell命令
.system() Python 脚本中运行shell命令
.popen() 运行命令并连接输入输出流
文件处理
.mkdir('目录名') 创建目录
.rmdir('目录名') 删除目录
.rename('旧名','新名') 改名
.remove('文件名') 删除文件
可移植工具
.sep 分隔符
.pathsep 路径分隔符
.curdir 相对当前目录符号
.pardir 相对父级目录符号
路径模块 .path
.isdir(path) 是否目录
.isfile(path) 是否文件
.exists(path) 是否存在
.split (path) 拆分路径
.splitext (path) 拆分路径扩展名
.join(path) 连接路径
.normpath(path) 标准化路径 各种转化不规则的
.abs