先直接上解決方案:
比如下面給出的字串a,有字母、』(單引號)、\n(換行符)、數字、:(冒號)、,(逗號),目標是只保留字串中的數字和字母,且看我如何操作。
import re
a=『eew 』 eawr,2 fd\n sa:21』
b=re.sub(r』[』:\s ,]*』, 『』, a) # 前面是正規表示式,匹配多種字元(串)
print(b)
具體執行展示一下:
解釋一下這個正規表示式的意思:r』[』:\s ,]*』
2:內是乙個字符集,字符集內的字元任何乙個被匹配,都算匹配成功,比如r』a[bcd]e』,可以匹配到』abe』、『ace』、『ade』。
3:*代表匹配前乙個字元0次或無限次。
4:\s代表的是空白字元,比如空格、換行符、製表符等等。
於是r』[』:\s ,]*『組合起來就是匹配字串中所有的的』(單引號)、\n(換行符)、:(冒號)、,(逗號)
最後re.sub(a, b, string)表示將string中a所匹配到的所有字元通通替換成b,我們這個例子就是將匹配到的』(單引號)、\n(換行符)、:(冒號)、,(逗號)通通替換成』』(nothing)。
在此之前,先試了一下用正規表示式來匹配多個字串,然後用replace方法行不通,但這個思路也是很正確的,最終還是幫我解決了問題。先看replace:
看看在replace中用上面提到的思路是什麼結果:
perl一次性替換多個串字串
最近策劃非要搞一堆一樣的指令碼,然後其中的一些效果id需要替換成別新的,這樣的id總共有50多個,替換軟體的話只能乙個乙個搞,還擔心中間搞錯了,比如,複製貼上過程中,只複製了原id,新的id沒有換,那就把原id替換成了上乙個要替換的新id.於是網上搜搜看一次性替換多個字串的方法,這個方法如下 usr...
一次性成功
沒有人能隨隨便便成功 最近察覺到自己思維的乙個誤區,希望實現的目標第一次就成功,順順利利跳過失敗。這是大家都想要的結局,美好的期望總被現實的波浪所淹沒,因為失敗是避免不了的。一次性成功的想法導致焦慮,困惑,自我懷疑,這個時候如果放低要求換個角度思考,第一次失敗又如何,如果失敗了倒下了哪有怎樣?只要自...
巧用「替換」一次性消除硬回車
經常收到一些熱心的來稿,稿件以txt格式存檔,開啟後卻發現每行都加入了硬回車,很不方便處理。無奈之下只得一一手工刪除。如果稿件很長,那麼工作量是非常大的。沒辦法,只好想動點腦筋處理了,於是就有了本文的誕生。1 將檔案全文貼上至word中 2 按ctrl h,出現 查詢和替換 窗體,將游標定位於 查詢...