-1
有人請解釋下面的代碼執行嗎? 我是Python的新手;我被困在're'和'sub'之間。Python re.sub()函數是如何工作的?
import re
a = 'a..!b...c???d;;'
chars = [',', '!', '.', ';', '?']
print re.sub('[%s]' % ''.join(chars), '', a)
有人請解釋下面的代碼執行嗎? 我是Python的新手;我被困在're'和'sub'之間。Python re.sub()函數是如何工作的?
import re
a = 'a..!b...c???d;;'
chars = [',', '!', '.', ';', '?']
print re.sub('[%s]' % ''.join(chars), '', a)
該代碼應用圓整的方式來刪除標點符號。它可以被簡化爲:
re.sub('[,!.;?]', '', a)
其中[....]
是一個正則表達式字符類定義。它將匹配輸入文本中屬於該類成員的任何字符,因此任何逗號,感嘆號等都將匹配。
的.sub()
功能將取代任何與之相匹配的第二個參數,在這種情況下,空字符串,刪除所有命名的標點符號。
此功能更好地被str.translate()
function,其第二個參數是一個字符序列從輸入文本刪除填寫。
a.translate(None, ',!.;?')
演示:
>>> a = 'a..!b...c???d;;'
>>> a.translate(None, ',!.;?')
'abcd'
什麼沒有你的代碼明白了嗎? –
什麼*部分*你不明白嗎?你有沒有讀過['re' module](http://docs.python.org/2/library/re.html)文檔? –
您可以隨時使用幫助(re.sub)。它會給你一個re.sub是什麼以及如何使用它的基本概要。 – iCodez