Python字符串操作之字符串搜索与替换

来源:互联网 发布:qq会员永久软件 编辑:程序博客网 时间:2024/05/25 05:37

11、字符串中的搜索和替换

11.1 str.find():正序字符串查找函数
函数原型:
str.find(substr [,pos_start [,pos_end ] ] )
返回str中第一次出现的substr的第一个字母的标号,如果str中没有substr则返回-1,也就是说从左边算起的第一次出现的substr的首字母标号。

参数说明:
str:代表原字符串
substr:代表要查找的字符串
pos_start:代表查找的开始位置,默认是从下标0开始查找
pos_end:代表查找的结束位置

#查找字符串'dd'第一次出现的位置>>> 'acddl123'.find('dd')2#查找第一次出现空格的位置>>> 'acdd l1 23'.find(' ')4#指定查找的起始位置和结束位置>>> 'acdd l1 23'.find(' ',3 ,6)4#未找到返回-1>>> 'acdd l1 23'.find(' ',5 ,6)-1#只指定查找的起始位置(不能只指定查找的结束位置)>>> 'acdd l1 23'.find(' ',5 )7

11.2 str.index():正序字符串查找函数
index()函数类似于find()函数,在Python中也是在字符串中查找子串第一次出现的位置,跟find()不同的是,未找到则抛出异常。
函数原型:
str.index(substr [, pos_start, [ pos_end ] ] )
参数说明:
str:代表原字符串
substr:代表要查找的字符串
pos_start:代表查找的开始位置,默认是从下标0开始查找
pos_end:代表查找的结束位置

#查找字符串中第一次出现空格的位置>>> 'acdd l1 23'.index(' ')4#未找到时抛出ValueError异常>>> 'acdd l1 23'.index('   ')Traceback (most recent call last):  File "<stdin>", line 1, in <module>ValueError: substring not found#指定起始查找位置>>> 'acdd l1 23'.index(' ',5)7#指定起始查找位置和结束查找位置>>> 'acdd l1 23'.index(' ',5,9)7

11.3 str.rfind():倒序字符串查找函数
函数原型:
str.rfind( substr [, pos_start [,pos_ end ] ])
返回str中最后出现的substr的第一个字母的标号,如果str中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号。

参数说明:
str:代表原字符串
substr:代表要查找的字符串
pos_start:代表查找的开始位置,默认是从下标0开始查找
pos_end:代表查找的结束位置

#查找最后一次出现字母'd'的位置>>> 'adsfddf'.rfind('d')5#指定查找的开始和结束位置查找>>> 'adsfddf'.rfind('d',3,5)4#指定开始查找的位置进行查找>>> 'adsfddf'.rfind('d',3)5#未找到返回-1>>> 'adsfddf'.rfind('d6')-1

11.4 str.rindex():倒序字符串查找函数
rindex()函数类似于rfind()函数,在Python中也是在字符串中倒序查找子串最后一次出现的位置,跟rfind()不同的是,未找到则抛出异常。
函数原型:
str.rindex(substr [, pos_start, [ pos_end ] ] )
参数说明:
str:代表原字符串
substr:代表要查找的字符串
pos_start:代表查找的开始位置,默认是从下标0开始查找
pos_end:代表查找的结束位置

#倒序查找最后一次出现字母'd'的位置>>> 'adsfddf'.rindex('d')5#指定查找的开始和结束位置开始查找>>> 'adsfddf'.rindex('d',3,6)5>>> 'adsfddf'.rindex('fd',3,6)3#未找到抛出ValueError异常>>> 'adsfddf'.rindex('d6')Traceback (most recent call last):  File "<stdin>", line 1, in <module>ValueError: substring not found

11.5 str.replace():字符串替换函数
函数原型:
str.replace(oldstr, newstr [, count])
把str中的oldstr替换成newstr,如果指定了count参数,表示替换最多不超过count次。如果未指定count参数,表示全部替换,有多少替换多少。

#指定替换次数>>> 'aabbdssdf12sdaacddaa'.replace('aa','-',2)'-bbdssdf12sd-cddaa'#不指定替换次数,将字符串中全部\n去掉,可以理解去全部替换为None了>>> 'a\nsd\r\t\n'.replace('\n','')'asd\r\t'#将字符串中全部的'.'去掉>>> 'a....sd\r\t....\n'.replace('.','')'asd\r\t\n'

11.6 str.count():计算字符串中某个子串的个数
函数原型:
str.count(substr, [start, [end] ])
在字符串str中统计子串substr出现的次数,如果不指定开始位置start和结束位置end,表示从头统计到尾。

#统计子串'aa'在原字符串中出现的总次数>>> 'aadgdxdfadfaadfgaa'.count('aa')3>>> 'aadaadfgaa'.count('d')2#从下标为3的位置开始统计子串'aa'出现的次数>>> 'aadgdxdfadfaadfgaa'.count('aa',3)2#在下标为3和6的位置开始统计子串'aa'出现的次数,但不包括6>>> 'aadgdxdfadfaadfgaa'.count('aa',3,6)0

11.7 str.expandtabs():将tab字符替换成空格
函数原型:
str.expandtabls([tabsize])
将str字符串中的tab字符替换成tabsize个空格,默认是8个空格。

#使用默认个数的空格替换字符串中的tab字符>>> 'a  v       f'.expandtabs()'a       v       f'#将tab字符替换成2个空格>>> 'a  v       f'.expandtabs(2)'a v f'
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 芡粉里面有虫了怎么办 勾芡淀粉放多了怎么办 剁排骨没有好刀怎么办 硬币掉进档位里怎么办 魅族mx5手机太卡怎么办 华为m9手机声音小怎么办 放卡的地方堵住怎么办 美图m8蓝屏了怎么办 美图m8手机蓝屏怎么办 美图m6s手机白屏怎么办 魅蓝2开不开机怎么办 魅族手机主键没反应怎么办 魅族手机主键失灵怎么办 手机4g网络不稳定怎么办 华为m9收不到手机信息怎么办 华为手机wifi信号弱怎么办 手机连接wifi信号差怎么办 华华为p10信号不好怎么办 烟没拆封受潮了怎么办 和亲儿子发生了性关系怎么办 无心磨磨出来圆度不好怎么办 中国人在越南办结婚证怎么办? 无线网被限速了怎么办 联通大王卡上传速度慢怎么办 小米手机下载视频速度慢怎么办 大疆御air脚架断了怎么办 大疆飞行器线断了怎么办 移动校园卡套餐到期后怎么办 流量年包到期了怎么办 家里无线网信号不好怎么办 无线网光信号红灯了怎么办 机顶盒获取不了lp地址怎么办 32内存卡丢了怎么办 手机上的相机找不到了怎么办 有刘鑫这样的闺蜜该怎么办 电脑开机网络初始化失败怎么办 电脑放音乐没有声音怎么办 苹果手机gprs信号弱怎么办 苹果导航gprs信号弱怎么办 au没有波形 没有声音怎么办 屏幕驱动板坏了怎么办