第一章 字符串和正则表达式
第一节 字符串有关知识
- 字符串类型:str类型:unicode的呈现类型;bytes类型:互联网数据都是二进制方式传输的;
- 字符集概念:ascii、gb2312、gb18030,unicode主要分别对应(英语、汉语、繁体);
- 字符集特点:上述字符集都是定长字符集,ascii为1个字节,unicode2个字节;
- utf-8字符集:unicode实现方式之一,为变长编码,基本消灭各自为战的字符集形势;
- str和bytes转换:encode()是str类型转bytes类型;decode()是bytes转str;
- decode参数:decode(“utf-8”)、decode(“utf8”)、decode(“UTF_8”)皆可;
- 注意事项:编解码必须一一对应;有些中文是gbk编码类型,要注意;
第二节 正则表达式
概述:re内置模块,match方法,参数:正则,字符串;返回值的group方法提取;
(一)单个字符匹配
- 数字:"\d"等价1位数字;[123456]等价1-6;[1-6],[1-356-9],代表连续不连续;
- 数字、字母:[1-8a-zA-Z]
(二)匹配多个字符
1.多个字符
2. 符号?的应用场景,比如电话号码的“-”,
3. re.S参数思考,“”“jgjgjg”“”,可以换行,内容可打印;4. 匹配开头结尾:
5. 实例:
(三)转义、或字符
-
分组和转义字符
-
转义字符\:如果email当中的"."、"?“等与正则冲突的字符,”"反斜杠充当转义字符;
例如:re.match(r"[a-zA-Z0-9_]{4,20}@163.com$",email)
-
或字符|:re.match(r"[a-zA-Z0-9_]{4,20}@(163|126).com$",email)
-
分组():
(四)python高级正则
-
search方法:只找一次;随意位置匹配 ret=re.search(r"\d+“,“阅读次数为9999”);ret.group();
-
findall方法:弥补search弱点,不用group,返回列表;
-
sub方法:替换后返回,不限制次数,
-
sub支持函数调用:
-
split方法: