如何从Python的string中删除符号?
我是一个Python和RegEx的初学者,我想知道如何创build一个带符号的string,并用空格replace它们。 任何帮助是伟大的。
例如:
how much for the maple syrup? $20.99? That's ricidulous!!!
成:
how much for the maple syrup 20 99 That s ridiculous
一种方法,使用正则expression式 :
>>> s = "how much for the maple syrup? $20.99? That's ridiculous!!!" >>> re.sub(r'[^\w]', ' ', s) 'how much for the maple syrup 20 99 That s ridiculous '
-
\w
将匹配字母数字字符和下划线 -
[^\w]
将匹配任何非字母数字或下划线的内容
有时需要更长的时间才能找出正则expression式,而不是把它写在Python中:
import string s = "how much for the maple syrup? $20.99? That's ricidulous!!!" for char in string.punctuation: s = s.replace(char, ' ')
如果您需要其他字符,您可以将其更改为使用白名单或扩展您的黑名单。
样本白名单:
whitelist = string.letters + string.digits + ' ' new_s = '' for char in s: if char in whitelist: new_s += char else: new_s += ' '
使用generator-expression对白名单进行采样:
whitelist = string.letters + string.digits + ' ' new_s = ''.join(c for c in s if c in whitelist)
我经常打开控制台,在对象方法中寻找解决scheme。 很多时候它已经在那里了:
>>> a = "hello ' s" >>> dir(a) [ (....) 'partition', 'replace' (....)] >>> a.replace("'", " ") 'hello s'
简短的回答:使用string.replace()
。