Python字串操作之字串搜尋與替換

2021-08-09 09:39:02 字數 4051 閱讀 3888

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...