Python 字符串和正则表达式的深入学习
注:因后续的知识,操作性比较强,所以更多的会偏向实践,不会再整理脑图。
1 字符串常用操作
1.1 拼接字符串
使用“ + ”拼接多个字符串;
不允许与其它类型的数据进行拼接
结果:
1.2 计算字符串的长度
使用 len()计算字符串长度
语法:len(string)
使用 encode()计算对应编码的字符串长度
结果:
1.3 截取字符串
截取方法同序列的截取,因为字符串也是序列
可以使用切片的方法
语法:string[start : end : step] 即:开始,截至,步长
结果:
1.4 分割字符串
分割字符串是把字符串分割为列表
语法:string.spilt(s, max) 即:string 为要分割的字符串,s 为分割的分隔符,max 为分割的次数
结果:
1.5 检索字符串
结果:
1.6 字母的大小写转换
结果:
1.7 去除字符串中的空格和特殊字符
结果:
1.8 格式化字符串
1.8.1 使用"%"操作符
语法:"%[-][+][0][m][.n]格式化字符串"%
说明:
—:可选,左对齐,指定正数前无符号,负数前加负号
+:可选,右对齐,指定正数前加正号,负数前加负号
0(零):可选,右对齐
结果:
1.8.2 使用字符串对象的 format()方法
语法:string.format(s)
说明:
str:指定字符串的显示样式(即模板);s 指定要转换的项,若有多项用逗号隔开。
创建模板时使用" {} " 和 " : "指定占位符
格式为:{[index] [:[fill]align] [sign] [#] [width] [.precision][type]] }
① index:可选,设置格式的对象在参数列表中的位置
② fill:可选,指定对齐方式("<"左对齐,">"右对齐,"="右对齐-对数字类型有效,"^"居中(配合 with 使用))
③sign:可选,指定有无符号
④#:可选,对二、八、十六进制,加上 #号表示有前缀“\0b\0o\0x”
⑤width:可选,所占宽度
⑥ .precision:可选,保留的小数位数
⑦type:可选,指定类型
结果:
上边的基础学习,还是很有收获的,起码对字符串的常用操作有了一定的认知!!还是得加油啊
2 正则表达式
2.1 行定位符
用来描述子串的边界,“ ^ ”为行开始," $ "为行结尾
2.2 元字符
除了前边的“^”和"$"外,还有很多元字符
如格式:\bqw\w*\b
说明:
①表示用于匹配以字母 qw 开头的单词
②先从某个单词开始处(\b),然后匹配字母 qw,接着是任意的字母或字符(\w*),最后是单词结束处(\b)
常用元字符
2.3 限定符
常用限定符
2.4 字符类
[aeiou],匹配任何一个英文元音字母
[.?!],匹配标点符号(" . " 或" ? "或" ! ")
[0-9],和"\d"一样,0-9 任意一个数字
[a-z0-9A-Z],等同于"\w"
2.5 排除字符
" ^ "表示行的开始,如果放在[ ]中表示排除
如[a-zA-Z]表示匹配一个不是字母的字符
2.6 选择字符
使用" | "来表示,意思为"或"
比如:
2.7 转义字符
2.8 分组
2.9 正则表达式语法
3 使用 re 模块实现正则表达式
使用以下引入 re 模块即可
3.1 匹配字符串
3.1.1 match()方法
从字符串的开始处进行匹配,匹配成功返回 Match 对象,失败返回 None
语法:re.match(pattern,s,flags)
说明:
pattern:模式字符串 s:要匹配的字符串 flags:可选,控制匹配方式
flags 常用标志
3.1.2 search()方法
用于再整个字符串中搜索第一个匹配的值,成功返回对象,失败返回 None
语法:re.search(pattern,s,flags)
说明:
pattern:模式字符串 s:要匹配的字符串 flags:可选,控制匹配方式
3.1.3 findall()方法
用于再整个字符串中搜索所有符合正则表达式的字符串,成功返回包含匹配结构的列表,失败返回空列表
语法:re.findall(pattern,s,flags)
说明:
pattern:模式字符串 s:要匹配的字符串 flags:可选,控制匹配方式
结果:
3.2 替换字符串
sub()方法用于字符串替换
语法:re.sub(patern, repl, s, count, flags)
说明:
patern:模式字符串 repl:替换的字符串 s:原始字符串 count:可选,替换的最大次数,默认为 0flags:控制匹配方式
结果:
3.3 正则表达式分割字符串
语法:re.spilt(pattern, s, [maxsplit], [flags])
说明:
pattern:模式字符串 s:要匹配的字符串 maxsplit:可选,最大的拆分次数 flags:可选,控制匹配方式
结果:
版权声明: 本文为 InfoQ 作者【虫无涯】的原创文章。
原文链接:【http://xie.infoq.cn/article/010c7e02b73b9fd636b2fc4d5】。文章转载请联系作者。
评论