我的任务是从文本文件或字符串中删除所有非数字字符,包括空格,然后在旧字符旁边打印新结果,例如:
之前:
sd67637 8
之后:
676378
由于我是一个初学者,我不知道从哪里开始这项任务。请帮帮忙
发布于 2013-06-27 15:52:28
最简单的方法是使用regexp
import re
a = 'lkdfhisoe78347834 (())&/&745 '
result = re.sub('[^0-9]','', a)
print result
>>> '78347834745'
发布于 2013-06-27 15:20:54
循环您的字符串,一个字符一个字符,并且只包含数字:
new_string = ''.join(ch for ch in your_string if ch.isdigit())
或者在字符串上使用正则表达式(如果在某个时候您想要单独处理不连续的组)...
import re
s = 'sd67637 8'
new_string = ''.join(re.findall(r'\d+', s))
# 676378
然后只需将它们print
出来:
print(old_string, '=', new_string)
发布于 2013-06-27 15:28:50
您可以使用string.ascii_letters
来标识您的非数字:
from string import *
a = 'sd67637 8'
a = a.replace(' ', '')
for i in ascii_letters:
a = a.replace(i, '')
如果要替换冒号,请使用引号"
而不是冒号'
。
https://stackoverflow.com/questions/17336943
复制相似问题