1. 程式人生 > >replace()和re.s()用法

replace()和re.s()用法

replace()語法:

replace(old, new, max)
引數:
old → 舊字串,將被替換的子字串。
new →新字串,用於替換old子字串。
max → 可省略,預設全部替換,可選字串,替換次數不超過max次。


>>>'jdkaka;ufahjka398jh'.replace('a','@')
'[email protected]@;[email protected]@398jh'
>>>'jdkaka;ufahjka398jh'.replace('a','@',2)
'[email protected]
@;ufahjka398jh'

re.sub()語法:

re.sub(pattern, repl, string, count=0, flags=0)
re是regular expression的縮寫,表示正則表示式;sub是substitude的縮寫,表示替換
re.sub是正則表示式的函式,實現比普通字串更強大的替換功能

))pattern正則表示式的字串 eg中r’\w+’

2))repl被替換的內容eg中’10’

3))string正則表示式匹配的內容eg中"xy 15 rt 3e,gep"

4))count:由於正則表示式匹配的結果是多個,使用count來限定替換的個數從左向右,預設值是0,替換所有的匹配到的結果eg中2

5))flags是匹配模式,可以使用按位或者“|”表示同時生效,也可以在正則表示式字串中指定eg中flags=re.I,flags表示忽略大小寫,re.S表示匹配到\n換行符。

中r’\w+'為正則表示式,匹配多個英文單詞或者數字,

示例1

>>>import re
>>>string1 = 'shy and outgoing'
>>>re.sub('shy|outgoing', 'personality', string1)
'personality and personality'

###示例2

>>>import re
>>>re.sub('a','&',a)
'&bj&vl&lh&ju2&i8'

>>>re.sub('a','&',a, count=2)
'&bj&vlalhaju2ai8'

###示例3

>>>import re
>>>s = '2017-01-22'
>>>s = re.sub('(\d{4})-(\d{2})-(\d{2})', r'\3-\1-\2', s)
22-2017-01

示例4

我是在爬蟲過程中用到re.sub(),如下圖所示:

在這裡插入圖片描述

當爬取網頁的作者直接輸出中間可能有換行符\n和空格,不是我們想要的資訊,利用re.sub(’\n ', ‘’, string),可以將空格和換行去掉,得到資訊使用非常方便。效果如下圖所示:

在這裡插入圖片描述

以上是我自己的理解可以多參考幾個網站,
點選這裡網站1
點選這裡網站2