I'm a beginner with both Python and RegEx, and I would like to know how to make a string that takes symbols and replaces them with spaces. Any help is great.
For example:
how much for the maple syrup? $20.99? That's ricidulous!!!
into:
how much for the maple syrup 20 99 That s ridiculous
asked May 18, 2009 at 1:55
2
One way, using regular expressions:
>>> 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
will match alphanumeric characters and underscores[^\w]
will match anything that's not alphanumeric or underscore
Blue Ice
7,7086 gold badges31 silver badges50 bronze badges
answered May 18, 2009 at 1:59
dF.dF.
72k29 gold badges128 silver badges135 bronze badges
5
Sometimes it takes longer to figure out the regex than to just write it out in python:
import string
s = "how much for the maple syrup? $20.99? That's ricidulous!!!"
for char in string.punctuation:
s = s.replace[char, ' ']
If you need other characters you can change it to use a white-list or extend your black-list.
Sample white-list:
whitelist = string.letters + string.digits + ' '
new_s = ''
for char in s:
if char in whitelist:
new_s += char
else:
new_s += ' '
Sample white-list using a generator-expression:
whitelist = string.letters + string.digits + ' '
new_s = ''.join[c for c in s if c in whitelist]
answered May 18, 2009 at 9:24
monkutmonkut
40.1k22 gold badges117 silver badges147 bronze badges
2
I often just open the console and look for the solution in the objects methods. Quite often it's already there:
>>> a = "hello ' s"
>>> dir[a]
[ [....] 'partition', 'replace' [....]]
>>> a.replace["'", " "]
'hello s'
Short answer: Use string.replace[]
.
Nathan
3,7292 gold badges19 silver badges21 bronze badges
answered May 18, 2009 at 5:45
busterbuster
9511 gold badge8 silver badges15 bronze badges
1