【发布时间】:2013-10-29 07:45:47
【问题描述】:
您好,我是编程和 python 方面的新手,我有一个问题。
如何打印或只返回字符串中的数字
例如:
"Hu765adjH665Sdjda"
输出:
"765665"
【问题讨论】:
标签: string python-2.7 python-3.x int return
您好,我是编程和 python 方面的新手,我有一个问题。
如何打印或只返回字符串中的数字
例如:
"Hu765adjH665Sdjda"
输出:
"765665"
【问题讨论】:
标签: string python-2.7 python-3.x int return
您可以使用 re.sub 删除任何不是数字的字符。
import re
string = "Hu765adjH665Sdjda"
string = re.sub('[^0-9]', '', string)
print string
#'765665'
re.sub 从左到右扫描字符串。每次它找到一个不是数字的字符时,它都会将其替换为空字符串(这与出于所有实际目的删除它相同)。
【讨论】:
>>> s = "Hu765adjH665Sdjda"
>>> ''.join(c for c in s if c in '0123456789')
'765665'
【讨论】:
试试过滤器
>>> str='1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik9ol'
>>> print str
1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik9ol
>>> filter(lambda x:x>='0' and x<='9', str)
'123456789'
【讨论】:
str 这样的名称,因为它们会覆盖像 str 这样的函数
filter 接受一个谓词和一组输入,只返回谓词评估为真的那些
sentence = "Hu765adjH665Sdjda"
for number in sentence:
if number in "0123456789":
print(number)
【讨论】: