📜  Python|从字符串中提取数字

📅  最后修改于: 2022-05-13 01:55:50.103000             🧑  作者: Mango

Python|从字符串中提取数字

很多时候,在处理字符串时,我们会遇到这个问题,我们需要获取所有出现的数字。这种类型的问题通常发生在竞争性编程和 Web 开发中。让我们讨论一些可以解决这个问题的方法。

方法 #1:使用列表理解 + isdigit() + split()
这个问题可以通过使用 split函数将字符串转换为列表来解决,然后列表推导可以帮助我们遍历列表,isdigit函数有助于从字符串中获取数字。

# Python3 code to demonstrate
# getting numbers from string 
# using List comprehension + isdigit() +split()
  
# initializing string 
test_string = "There are 2 apples for 4 persons"
  
# printing original string 
print("The original string : " + test_string)
  
# using List comprehension + isdigit() +split()
# getting numbers from string 
res = [int(i) for i in test_string.split() if i.isdigit()]
  
# print result
print("The numbers list is : " + str(res))
输出 :
The original string : There are 2 apples for 4 persons
The numbers list is : [2, 4]

方法 #2:使用re.findall()
这个特殊问题也可以使用Python regex 来解决,我们可以使用 findall函数来使用匹配的 regex 字符串检查出现的数字。

# Python3 code to demonstrate
# getting numbers from string 
# using re.findall()
import re
  
# initializing string 
test_string = "There are 2 apples for 4 persons"
  
# printing original string 
print("The original string : " + test_string)
  
# using re.findall()
# getting numbers from string 
temp = re.findall(r'\d+', test_string)
res = list(map(int, temp))
  
# print result
print("The numbers list is : " + str(res))
输出 :
The original string : There are 2 apples for 4 persons
The numbers list is : [2, 4]