我有一个字符串,我想用它替换任何非标准字符或非标准数字的字符,比如(a-z或0-9)。例如,"h^&ell`.,|o w]{+orld“替换为"h*ell*o*w*orld”。请注意,多个字符(如"^&“)将替换为一个星号。我该怎么做呢?
发布于 2012-10-20 13:11:02
Regex出手相救!
import re
s = re.sub('[^0-9a-zA-Z]+', '*', s)
示例:
>>> re.sub('[^0-9a-zA-Z]+', '*', 'h^&ell`.,|o w]{+orld')
'h*ell*o*w*orld'
发布于 2014-02-28 21:27:31
巨蟒的方式。
print "".join([ c if c.isalnum() else "*" for c in s ])
不过,这并不涉及对多个连续的非匹配字符进行分组,即
"h^&i => "h**i
而不是正则表达式解决方案中的"h*i"
。
发布于 2015-01-05 13:15:40
尝试:
s = filter(str.isalnum, s)
在Python3中:
s = ''.join(filter(str.isalnum, s))
Edit:了解到OP希望将非字符替换为'*‘。我的答案不合适
https://stackoverflow.com/questions/12985456
复制相似问题