首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >替换字符串中的所有非字母数字字符

替换字符串中的所有非字母数字字符
EN

Stack Overflow用户
提问于 2012-10-20 13:10:05
回答 4查看 134.9K关注 0票数 115

我有一个字符串,我想用它替换任何非标准字符或非标准数字的字符,比如(a-z或0-9)。例如,"h^&ell`.,|o w]{+orld“替换为"h*ell*o*w*orld”。请注意,多个字符(如"^&“)将替换为一个星号。我该怎么做呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-10-20 13:11:02

Regex出手相救!

代码语言:javascript
复制
import re

s = re.sub('[^0-9a-zA-Z]+', '*', s)

示例:

代码语言:javascript
复制
>>> re.sub('[^0-9a-zA-Z]+', '*', 'h^&ell`.,|o w]{+orld')
'h*ell*o*w*orld'
票数 215
EN

Stack Overflow用户

发布于 2014-02-28 21:27:31

巨蟒的方式。

代码语言:javascript
复制
print "".join([ c if c.isalnum() else "*" for c in s ])

不过,这并不涉及对多个连续的非匹配字符进行分组,即

"h^&i => "h**i而不是正则表达式解决方案中的"h*i"

票数 48
EN

Stack Overflow用户

发布于 2015-01-05 13:15:40

尝试:

代码语言:javascript
复制
s = filter(str.isalnum, s)

在Python3中:

代码语言:javascript
复制
s = ''.join(filter(str.isalnum, s))

Edit:了解到OP希望将非字符替换为'*‘。我的答案不合适

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12985456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档