字符串的常用操作
字符串是Python中的不可变数据类型
方法名 | 描述说明 |
str.lower() | 将str字符串全部转成小写字母,结果为一个新的字符串 |
str.upper() | 将str字符串全部转成大写字母,结果为一个新的字符串 |
str.split(sep=None) | 将str按照指定的分隔符sep进行分隔,结果为列表类型 |
str.count(sub) | 结果为sub这个字符串在str中出现的次数 |
str.find(sub) | 查询sub这个字符串在str中是否存在,如果不存在结果为-1,如果存在,结果为sub首次出现的索引 |
str.index(sub) | 功能与find()相同,区别在于要查询的子串sub不存在时,程序报错 |
str.startwith(s) | 查询字符串str是否以子串s开头 |
str.endwith(s) | 查询字符串str是否以子串s结尾 |
str.replace(old,news) | 使用news替换字符串s中所有的old字符串,结果是一个新的字符串 |
str.center(width,fillchar) | 字符串str字啊指定的宽度范围内居中,可以使用fillchar进行填充 |
str.join(iter) | 在iter中的每个元素的后面都增加一个新的字符串str |
str.strip(chars) | 从字符串中去掉左侧和右侧chars中列出的字符串 |
str.lstrip(chars) | 从字符串中去掉左侧chars中列出的字符串 |
str.rstrip(chars) | 从字符串中去掉右侧chars中列出的字符串 |
格式化字符串的三种方式
占位符 | f-string | str.format()方法 |
%s:字符串格式 %d:十进制整数格式 %f:浮点数格式 | Python3.6引入的格式化字符串的方式,比{}标明被替换的字符 | 模版字符串.format(逗号分隔的参数 ) |
格式化字符串的详细格式
: | 填充 | 对齐方式 | 宽度 | , | .精度 | 类型 |
引导符号 | 用于填充单个字符 | <左对齐 >右对齐 ^居中对齐 | 字符串的输出宽度 | 数字的千位分隔符(只适用于整数和浮点数 ) | 浮点数小数部分的精度或字符串的最大输出长度 | 整数类型:b\d\o\x\X\ 浮点数类型:e\E\f\% |
字符串的编码
将str类型转换成bytes类型,需要使用到字符串encode()方法
语法格式:
str.encode(encoding='utf-8',errors='strict/ignore/replace')
字符串的解码
将bytes类型转换成str类型,需要使用到bytes类型的decode()方法
语法格式:
bytes.decode(encoding='utf-8',errors='strict/ignore/replace')
数据的验证
数据的验证是指程序对用户输入的数据进行“合法”性验证
方法名 | 描述说明 |
str.isdigit() | 所有字符都是数字(阿拉伯数字) |
str.isnumeric() | 所有字符都是数字 |
str.isalpha() | 所有字符都是字母(包含中文字母) |
str.isalnum() | 所有字符都是数字或字母(包含中文字符) |
str.islower() | 所有字符都是小写 |
str.isupper() | 所有字符都是大写 |
str.istitle() | 所有字符都是首字母大写 |
str.isspace() | 所有字符都是空白字符(\n、\t等) |
数据的处理
字符串拼接的几种方式:
使用str.join()方法进行拼接字符串
直接拼接
使用格式化字符串进行拼接
正则表达式
元字符:具有特殊意义的专用字符,例如“^”和“$”分别表示匹配的开始和结束
元字符 | 描述说明 | 举例 | 结果 |
. | 匹配任意字符(除\n) | 'p\nytho\tn' | p、y、t、h、o、\t、n |
\w | 匹配字母、数字、下划线 | 'python\n123' | p、y、t、h、o、n、1、2、3 |
\W | 匹配非字母、数字、下划线 | 'python\n123' | \n |
\s | 匹配任意空白字符 | 'python\t123' | \t |
\S | 匹配任意非空白字符 | 'python\t123' | p、y、t、h、o、n、1、2、3 |
\d | 匹配任意十进制数 | 'python\t123' | 1、2、3 |
限定符:用于限定匹配的次数
限定符 | 描述说明 | 举例 | 结果 |
? | 匹配前面的字符0次或1次 | colou?r | 可以匹配color或colour |
+ | 匹配前面的字符1次或多次 | colou+r | 可以匹配colour或colouu...r |
* | 匹配前面的字符0次或多次 | colou*r | 可以匹配color或colouu...r |
{n} | 匹配前面的字符n次 | colou{2}r | 可以匹配colouur |
{n,} | 匹配前面的字符最少n次 | colou{2,}r | 可以匹配colouur或colouuu...r |
{n,m} | 匹配前面的字符最少n次,最多m次 | colou{2,4}r | 可以匹配colouur或colouuur或colouuuur |
其他字符
其他字符 | 描述说明 | 举例 | 结果 |
区间字符[] | 匹配[]中所指定的字符 | [.?!] [0-9] | 匹配标点符号点、问号、感叹号 匹配0、1、2、3、4、5、6、7、8、9 |
排除字符^ | 匹配不在[] 中指定的字符 | [^0-9] | 匹配除0、1、2、3、4、5、6、7、8、9的字符 |
选择字符| | 用于匹配|左右的任意字符 | \d{18}|\d{15} | 匹配15位身份证或18位身份证 |
转义字符 | 同Python中的转义字符 | \. | 将.作为普通字符使用 |
[\u4e00-\u9fa5] | 匹配任意一个汉字 | ||
分组() | 改变限定符的作用 | six|fourth (sixfour)th | 匹配six或fourth 匹配sixth或fourth |
re模块
Python中的内置模块,用于实现Python中的正则表达式操作
函数 | 功能描述 |
re.match(pattern,string,flags=0) | 用于从字符串的开始位置进行匹配,如果起始位置匹配成功,结果为Match对象,否则结果为None |
re.search(pattern,string,flags=0) | 用于在整个字符串中搜索第一个匹配的值,如果匹配成功,结果为Match对象,否则结果为None |
re.findall(pattern,string,flags=0) | 用于在整个字符串搜索所有符合正则表达式的值,结果是一个列表类型 |
re.sub(pattern,string,flags=0) | 用于实现对字符串中指定子串的替换 |
re.split(pattern,string,flags=0) | 字符串中的split()方法功能相同,都是分隔字符串 |
总结:
字符串的常用方法:
大小写转换方法:str.lower()、str.upper()
字符串分隔方法:str.split()
检索的方法:str.count()、str.find()、str.index()
字符串判断的方法:str.startwith()、str.endwith()
字符串替换的方法:str.replace()
字符串显示方法的方法:str.center()
字符串拼接方法:str.join()
去除字符串前后字符的方法:str.strip()、str.lstrip()、str.rstrip()
格式化字符串的三种方式:
1)使用占位符进行格式化字符串
2)f-string格式化字符串
3)使用字符串的format方法进行格式化字符串
字符串编码的方法:str.encode()
字符串解码的方法:bytes.decode()
数据验证的方法:str.isdigit()、str.isnumeric()、str.isalpha()、str.isalnum()、str.islower()、str.isupper、str.istitle()、str.isspace()
数据的处理:字符串的拼接与去重
内置模块re中的常用的函数:re.match()、re.search()、re.findall()、re.sub()、re.split()