首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从字符串中删除非数字字符

从字符串中删除非数字字符
EN

Stack Overflow用户
提问于 2013-06-27 15:19:03
回答 4查看 82.7K关注 0票数 56

我的任务是从文本文件或字符串中删除所有非数字字符,包括空格,然后在旧字符旁边打印新结果,例如:

之前:

代码语言:javascript
复制
sd67637 8

之后:

代码语言:javascript
复制
676378

由于我是一个初学者,我不知道从哪里开始这项任务。请帮帮忙

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-27 15:52:28

最简单的方法是使用regexp

代码语言:javascript
复制
import re
a = 'lkdfhisoe78347834 (())&/&745  '
result = re.sub('[^0-9]','', a)

print result
>>> '78347834745'
票数 99
EN

Stack Overflow用户

发布于 2013-06-27 15:20:54

循环您的字符串,一个字符一个字符,并且只包含数字:

代码语言:javascript
复制
new_string = ''.join(ch for ch in your_string if ch.isdigit())

或者在字符串上使用正则表达式(如果在某个时候您想要单独处理不连续的组)...

代码语言:javascript
复制
import re
s = 'sd67637 8' 
new_string = ''.join(re.findall(r'\d+', s))
# 676378

然后只需将它们print出来:

代码语言:javascript
复制
print(old_string, '=', new_string)
票数 25
EN

Stack Overflow用户

发布于 2013-06-27 15:28:50

您可以使用string.ascii_letters来标识您的非数字:

代码语言:javascript
复制
from string import *

a = 'sd67637 8'
a = a.replace(' ', '')

for i in ascii_letters:
    a = a.replace(i, '')

如果要替换冒号,请使用引号"而不是冒号'

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

https://stackoverflow.com/questions/17336943

复制
相关文章

相似问题

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