可能重複:
Python replace multiple strings如何將搜索和替換使用python多個正則表達式重新
我尋找替代「 「
,「\r」
,「\n」
,「<」
,「>」
,「’」
(單報價)和‘」’
(雙引號)與「」
(空)。我還打算用「,」
替換「;」
和「|」
。
這會被re.search
,因爲我希望能夠在任何地方文本搜索,或者我會用re.sub
處理。
什麼是最好的處理方法?我發現了點點滴滴,但沒有處理多個正則表達式。
可能重複:
Python replace multiple strings如何將搜索和替換使用python多個正則表達式重新
我尋找替代「 「
,「\r」
,「\n」
,「<」
,「>」
,「’」
(單報價)和‘」’
(雙引號)與「」
(空)。我還打算用「,」
替換「;」
和「|」
。
這會被re.search
,因爲我希望能夠在任何地方文本搜索,或者我會用re.sub
處理。
什麼是最好的處理方法?我發現了點點滴滴,但沒有處理多個正則表達式。
如果您需要更換僅單個字符之間的專業,那麼你可以使用str.translate()
:
import string
table = string.maketrans(';|', ',,')
deletechars = ' \r\n<>\'"'
print "ex'a;m|ple\n".translate(table, deletechars)
# -> exa,m,ple
ooooh yes!那就是做什麼! – eyquem
如果要刪除這些字符的所有事件,只是把它們放在一個字符類,做re.sub()
your_str = re.sub(r'[ \r\n\'"]+', '', your_str)
your_str = re.sub(r'[;|]', ',', your_str)
你必須調用re.sub()
針對全部替換規則。
import re
reg = re.compile('([ \r\n\'"]+)|([;|]+)')
ss = 'bo ba\rbu\nbe\'bi"by-ja;ju|jo'
def repl(mat, di = {1:'',2:','}):
return di[mat.lastindex]
print reg.sub(repl,ss)
注意:'|'失去了它的支架
如果要更換一個常量字符串與另一個,就沒有必要使用正則表達式。 –
您是從某處複製/粘貼這些引號還是實際上在瀏覽器的文本框中輸入了匹配的引號? – agf
當然複製和粘貼 – kamal