一、Python转义字符
\a :响铃(BEL)
\b : 退格(BS) ,将当前位置移到前一列
\f :换页(FF),将当前位置移到下页开头
\n :换行(LF) ,将当前位置移到下一行开头
\r :回车(CR) ,将当前位置移到本行开头
\t :水平制表(HT) (跳到下一个TAB位置)
\v :垂直制表(VT)
\\ :代表一个反斜线字符
\' :代表一个单引号(撇号)字符
\" :代表一个双引号字符
\? :代表一个问号
\0 :空字符(NULL)
\ddd :3位八进制数所代表的任意字符
\xhh :2位十六进制所代表的任意字符
二、Python字符串格式化符号
1、百分号%方式
%c:格式化字符及其ASCII码
%s:格式化字符串
%d:格式化整数
%u:格式化无符号整型
%o:格式化无符号八进制数
%x:格式化无符号十六进制数
%X:格式化无符号十六进制数(大写)
%f:格式化浮点数字,可指定小数点后的精度
%e:用科学计数法格式化浮点数
%E:作用同%e,用科学计数法格式化浮点数
%p:用十六进制数格式化变量的地址
例子:
%r 与 %s 区别:
%r 用来做 debug 比较好,因为它会显示变量的原始数据(raw data),而其它的符号则是用来向用户显示输出的。
# 格式化部分用单引号输出
# 可以看见与上面输出存在明显的区别
format方式
三、Python正则表达式
1、正则匹配的基本语法
正则表达式的通配符表示含义:
模式字符串使用特殊的语法来表示一个正则表达式:
字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。
多数字母和数字前加一个反斜杠时会拥有不同的含义。
标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。
反斜杠本身需要使用反斜杠转义。
由于正则表达式通常都包含反斜杠,所以你最好使用原始字符串来表示它们。模式元素(如 r'\t',等价于 '\t')匹配相应的特殊字符。
下表列出了正则表达式模式语法中的特殊元素。如果你使用模式的同时提供了可选的标志参数,某些模式元素的含义会改变。
2、re模块
Python中re模块使用正则表达式的两种方法
使用re.compile(r, f)方法生成正则表达式对象,然后调用正则表达式对象的相应方法。这种做法的好处是生成正则对象之后可以多次使用。
re模块中对正则表达式对象的每个对象方法都有一个对应的模块方法,唯一不同的是传入的第一个参数是正则表达式字符串。此种方法适合于只使用一次的正则表达式。
以下是re模块常用的七个函数:
注意事项:match、fullmatch、findall、finditer、search区别
match:是根据传入的正则表达式匹配对应的字符串。并且是从开始字符匹配。匹配到字符不能匹配的位置然后返回匹配的对象。返回的对象是MatchObject或者空。
fullmatch和match的区别是fullmatch必须是目标字符串从开始到结束全部都匹配这个传入的正则表达式才可以返回匹配对象。否则返回空。返回的对象也是MatchObject对象。
findall:从字符串中从前向后依次查找匹配正则表达式的子串。最后把多个匹配的子串用列表形式返回。列表的每个元素是一个匹配的子串。
finditer和findall功能相同。但是finditer返回的是一个可迭代对象。可以用next()方法读取。然后再用group方法读取匹配的内容。
search:是从前向后依次扫描整个字符串。返回第一个匹配的子串。匹配位置不一定是开始字符。但是如果用*来表示0-n次重复时需要测试。有时候会返回空字符串。
search、match返回对象是MatchObject或者是None。findall返回对象是列表。列表每个元素都是一个可以匹配的一段子串。
3、总结
- 对于正则表达式的匹配功能,Python没有返回true和false的方法,但可以通过对match或者search方法的返回值是否是None来判断
- 对于正则表达式的搜索功能,如果只搜索一次可以使用search或者match方法返回的匹配对象得到,对于搜索多次可以使用finditer方法返回的可迭代对象来迭代访问
- 对于正则表达式的替换功能,可以使用正则表达式对象的sub或者subn方法来实现,也可以通过re模块方法sub或者subn来实现,区别在于模块的sub方法的替换文本可以使用一个函数来生成
- 对于正则表达式的分割功能,可以使用正则表达式对象的split方法,需要注意如果正则表达式对象有分组的话,分组捕获的内容也会放到返回的列表中
参考链接:
https://docs.python.org/zh-cn/3/howto/regex.html
https://docs.python.org/zh-cn/3/library/re.html
Python文件操作
OS模块常用函数
来源:https://www.cnblogs.com/H4ck3R-XiX/p/12293166.html