我想从tex中取出整数

2024-10-03 17:25:32 发布

您现在位置: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)

Tags: in文本true列表if整数numappend
3条回答

一行解决方案:

print [i for i in Sometext if i.isdigit()]

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

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

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

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]

相关问题 更多 >