我有以下字符串:
text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'
我想回来:
2007 2008
用Python做任何事吗?
答案 0 :(得分:7)
这是正则表达式的经典案例。使用re python库:
re.findall('\d{4}', "yourStringHere")
这将返回字符串中找到的所有四位数字项的列表。只需根据需要调整你的正则表达式。
答案 1 :(得分:5)
import re
num = re.compile('[\d]*')
numbers = [number for number in num.findall(text) if number]
['2007', '2008']
答案 2 :(得分:3)
>>> import re
>>> text = 'adsfklaiin2007daf adf adflkajf;j 2008afadfkjkj'
>>> re.sub("[^0-9]"," ",text)
' 2007 2008 '
我会留给你格式化输出。
答案 3 :(得分:1)
text.translate(None, ''.join(chr(n) for n in range(0xFF) if chr(n) not in ' 01234567890')
您可以构建一个更好的字符表来跳过并使其更漂亮,但这是一般的想法。