-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