博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python字符串操作之字符串搜索与替换
阅读量:4042 次
发布时间:2019-05-24

本文共 2882 字,大约阅读时间需要 9 分钟。

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 "
", line 1, in
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 "
", line 1, in
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'

转载地址:http://hbmdi.baihongyu.com/

你可能感兴趣的文章
iOS 中用代码写字体,并加入…
查看>>
《转》深入浅出 Cocoa 多线程编程…
查看>>
多target
查看>>
用 HTTP 压缩加快 Web 数据…
查看>>
iOS学习笔记——字符串编码转…
查看>>
GDataXMLNode应用小谈
查看>>
做彩票客户端里涉及支付宝相关收获
查看>>
GData 解析Xml以及写xml到文…
查看>>
In App Purchase 详细介绍
查看>>
iOS运行回路(RunLoop)总结
查看>>
《转》iphone线程中使用异步网络的…
查看>>
iPhone开发中静态库中的Category使…
查看>>
去掉字符串中不能作为文件名的特殊…
查看>>
常用SQL说明
查看>>
在iOS中使用重定向,把控制台内容…
查看>>
SQLibs iOS开发常用代码库
查看>>
iOS 开发常用尺寸
查看>>
"/usr/include/sqlite3.h" …
查看>>
ShareKit 中SHK.m中的编译错…
查看>>
Object_c底层细节
查看>>