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'
Python之字串操作
每種語言都有字串這個資料型別,但是每種語言的字串操作都不盡相同,python相對於其他語言,字串操作其實有明顯的優勢,簡單明瞭。定義乙個字串 name phone 將首字母變成大寫 name.capitalize 格式化字串,不足的用其他標識填補 name.center 50.把tab轉成若干個空格...
Python 之字串操作
capitalize 將字串的第乙個字元轉換為大寫 center width,fillchar 返回乙個指定的寬度 width 居中的字串,fillchar 為填充的字元,預設為空格。count str,beg 0,end len string 返回 str 在 string 裡面出現的次數,如果 ...
python字串 Python 字串
建立字串很簡單,只要為變數分配乙個值即可。例如 var1 hello world var2 python runoob python訪問字串中的值python不支援單字元型別,單字元在 python 中也是作為乙個字串使用。python訪問子字串,可以使用方括號來擷取字串,如下例項 例項 pytho...