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

来源:互联网 发布:淘宝的pc端是什么意思 编辑:程序博客网 时间:2024/05/18 23:12

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
0 0
原创粉丝点击