Python 字符串提取数字
在Python中,我们经常需要从字符串中提取数字。这在数据处理、文本分析等领域中非常常见。本文将详细介绍如何使用Python来提取字符串中的数字。
方法一:使用正则表达式
正则表达式是一种强大的字符串匹配工具,可以用来提取字符串中的数字。下面是一个简单的示例代码:
import re
text = "deepinout.com 2021 is a great year"
numbers = re.findall(r'\d+', text)
print(numbers)
Output:
在上面的示例中,我们使用re.findall
函数来查找字符串中的数字。\d+
表示匹配一个或多个数字。
方法二:使用isdigit()方法
Python中的字符串对象有一个isdigit()
方法,可以用来判断字符串是否只包含数字。我们可以结合这个方法来提取字符串中的数字。
text = "deepinout.com 2021 is a great year"
numbers = ''.join(filter(str.isdigit, text))
print(numbers)
Output:
在上面的示例中,我们使用filter
函数和str.isdigit
方法来过滤出字符串中的数字。
方法三:使用split()方法
另一种提取字符串中的数字的方法是使用split()
方法。我们可以根据非数字字符来分割字符串,并提取数字部分。
text = "deepinout.com 2021 is a great year"
numbers = ''.join(filter(str.isdigit, text.split()[1]))
print(numbers)
Output:
在上面的示例中,我们首先使用split()
方法将字符串分割成单词,然后提取第二个单词中的数字部分。
方法四:使用isdigit()和isalpha()方法
有时候字符串中可能包含字母和数字混合的情况,我们可以结合isdigit()
和isalpha()
方法来提取数字。
text = "deepinout.com 2021 is a great year"
numbers = ''.join(filter(lambda x: x.isdigit() or x.isspace(), text))
print(numbers)
Output:
在上面的示例中,我们使用isdigit()
和isspace()
方法来判断字符是否为数字或空格,然后过滤出数字部分。
方法五:使用re.sub()方法
除了使用re.findall()
方法外,我们还可以使用re.sub()
方法来替换非数字字符为空格,然后提取数字。
import re
text = "deepinout.com 2021 is a great year"
numbers = re.sub(r'\D', '', text)
print(numbers)
Output:
在上面的示例中,我们使用re.sub()
方法将非数字字符替换为空格,然后提取数字部分。
方法六:使用isdigit()和join()方法
我们还可以结合isdigit()
和join()
方法来提取字符串中的数字。
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x for x in text if x.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式和join()
方法来提取字符串中的数字。
方法七:使用re.split()方法
除了使用split()
方法外,我们还可以使用re.split()
方法来根据非数字字符来分割字符串。
import re
text = "deepinout.com 2021 is a great year"
numbers = ''.join(filter(str.isdigit, re.split(r'\D', text)))
print(numbers)
Output:
在上面的示例中,我们使用re.split()
方法根据非数字字符来分割字符串,然后提取数字部分。
方法八:使用isdigit()和join()方法
我们还可以结合isdigit()
和join()
方法来提取字符串中的数字。
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x for x in text if x.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式和join()
方法来提取字符串中的数字。
方法九:使用re.findall()方法
除了使用re.findall()
方法外,我们还可以使用re.finditer()
方法来提取字符串中的数字。
import re
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x.group() for x in re.finditer(r'\d+', text)])
print(numbers)
Output:
在上面的示例中,我们使用re.finditer()
方法来查找字符串中的数字,并使用列表推导式来提取数字部分。
方法十:使用isdigit()和join()方法
我们还可以结合isdigit()
和join()
方法来提取字符串中的数字。
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x for x in text if x.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式和join()
方法来提取字符串中的数字。
方法十一:使用re.findall()方法
除了使用re.findall()
方法外,我们还可以使用re.finditer()
方法来提取字符串中的数字。
import re
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x.group() for x in re.finditer(r'\d+', text)])
print(numbers)
Output:
在上面的示例中,我们使用re.finditer()
方法来查找字符串中的数字,并使用列表推导式来提取数字部分。
方法十二:使用isdigit()和join()方法
我们还可以结合isdigit()
和join()
方法来提取字符串中的数字。
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x for x in text if x.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式和join()
方法来提取字符串中的数字。
方法十三:使用re.findall()方法
除了使用re.findall()
方法外,我们还可以使用re.finditer()
方法来提取字符串中的数字。
import re
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x.group() for x in re.finditer(r'\d+', text)])
print(numbers)
Output:
在上面的示例中,我们使用re.finditer()
方法来查找字符串中的数字,并使用列表推导式来提取数字部分。
方法十四:使用isdigit()和join()方法
我们还可以结合isdigit()
和join()
方法来提取字符串中的数字。
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x for x in text if x.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式和join()
方法来提取## 方法十五:使用re.findall()方法
除了使用re.findall()
方法外,我们还可以使用re.finditer()
方法来提取字符串中的数字。
import re
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x.group() for x in re.finditer(r'\d+', text)])
print(numbers)
Output:
在上面的示例中,我们使用re.finditer()
方法来查找字符串中的数字,并使用列表推导式来提取数字部分。
方法十六:使用isdigit()和join()方法
我们还可以结合isdigit()
和join()
方法来提取字符串中的数字。
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x for x in text if x.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式和join()
方法来提取字符串中的数字。
方法十七:使用re.findall()方法
除了使用re.findall()
方法外,我们还可以使用re.finditer()
方法来提取字符串中的数字。
import re
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x.group() for x in re.finditer(r'\d+', text)])
print(numbers)
Output:
在上面的示例中,我们使用re.finditer()
方法来查找字符串中的数字,并使用列表推导式来提取数字部分。
方法十八:使用isdigit()和join()方法
我们还可以结合isdigit()
和join()
方法来提取字符串中的数字。
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x for x in text if x.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式和join()
方法来提取字符串中的数字。
方法十九:使用re.findall()方法
除了使用re.findall()
方法外,我们还可以使用re.finditer()
方法来提取字符串中的数字。
import re
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x.group() for x in re.finditer(r'\d+', text)])
print(numbers)
Output:
在上面的示例中,我们使用re.finditer()
方法来查找字符串中的数字,并使用列表推导式来提取数字部分。
方法二十:使用isdigit()和join()方法
我们还可以结合isdigit()
和join()
方法来提取字符串中的数字。
text = "deepinout.com 2021 is a great year"
numbers = ''.join([x for x in text if x.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式和join()
方法来提取字符串中的数字。