我想从文本中取出整数

时间:2019-11-06 22:25:30

标签: python

因此,有些文本中有整数,我想将其取出并放在不同的列表中,但不要在一起。 示例:

Sometext = somekindoftext123withthis445
numlist = (123,445)

我尝试使用列表

nums = ("0","1","2","3","4","5","6","7","8","9")

但宁愿将它们分开放置。

listi = []
num = []
while True:
  inputi = input("Text here: ")
  if inputi == "stop":
    break
  else:  listi.append(inputi)


for i in inputi:
  if len(inputi) > 0:
    listi.append(inputi)
while nums != 1000:
    if nums in listi[0]:
      num.append(nums)

3 个答案:

答案 0 :(得分:3)

您可以使用正则表达式来查找所有出现的数字,如下所示:

import re
s = 'somekindoftext123withthis445'
nums = [int(x) for x in re.findall(r'\d+', s)]
print(nums)
# [123, 445]

但是,如果您不想使用正则表达式而使用循环,则可以执行以下操作:

s = 'somekindoftext123withthis445'
num = 0
nums = []
ok = False
for c in s:
    if c.isdigit():
        num *= 10
        num += int(c)
        ok = True
    else:
        if ok:
            nums.append(num)
            num = 0
            ok = False
if num:
    nums.append(num)
print(nums)
# [123, 445]

答案 1 :(得分:0)

使用正则表达式匹配所有整数。

import re
sometext = 'somekindoftext123withthis445'
numlist = list(map(int, re.findall(r'\d+', sometext)))
print(numlist)

答案 2 :(得分:0)

一个内衬解决方案:

print [i for i in Sometext if i.isdigit()]
相关问题