extracting numbers in a string
本问题已经有最佳答案,请猛点这里访问。
如何提取字符串中的所有数字?
例如,考虑一个字符串
可以使用列表理解和
1 2 3 4 5 | >>> string ="66,55,66,57" >>> numbers = [int(x) for x in string.split(",")] >>> print numbers [66, 55, 66, 57] |
然后你可以用这个列表做你想做的任何事情。例如:
1 2 | >>> sum(numbers) 244 |
号
如果字符串包含其他分隔符或特殊字符,则建议甚至更早的方法也不适用。我建议另一种方法:
1 2 3 4 5 | import re s = '123 @, 421, 57&as241' result = re.findall(r'[0-9]+', s) |
结果:['123'、'421'、'57'、'241']
如果需要,可以将字符串值转换为int:
1 | result_int = map(int, result) |
。
试试这个:
1 2 3 4 5 6 7 8 | s ="66,55,66,57" its = iter(s) ints = [] while 1: try: ints.append(int(''.join(takewhile(str.isdigit, its)))) except ValueError: break |
将给出