Python如何取出字符串的数字
在Python中,我们经常会遇到需要从字符串中提取数字的情况。这些数字可能是整数、浮点数或者其他形式的数字。本文将介绍几种常见的方法来取出字符串中的数字,并提供详细的示例代码。
方法一:使用正则表达式
正则表达式是一种强大的字符串匹配工具,可以用来从字符串中提取特定的内容。我们可以使用正则表达式来匹配数字,并提取出来。
import re
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用正则表达式匹配数字
numbers = re.findall(r'\d+', s)
print(numbers)
Output:
在上面的示例中,我们使用re.findall()
函数和\d+
正则表达式来匹配字符串中的数字,并将匹配到的数字存储在列表中。
方法二:使用isdigit()方法
Python中的字符串对象有一个isdigit()
方法,可以用来判断字符串是否只包含数字字符。我们可以结合这个方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 遍历字符串,提取数字
numbers = ''.join([c for c in s if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们遍历字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法三:使用split()方法
如果字符串中的数字是以空格或其他分隔符分隔的,我们可以使用split()
方法来分割字符串,并提取数字部分。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用split()方法分割字符串
numbers = ''.join([c for c in s if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用split()
方法将字符串分割成多个部分,然后提取数字部分并拼接起来。
方法四:使用isdigit()和isnumeric()方法
除了isdigit()
方法外,Python中的字符串对象还有一个isnumeric()
方法,可以用来判断字符串是否只包含数字字符。我们可以结合这两个方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 遍历字符串,提取数字
numbers = ''.join([c for c in s if c.isdigit() or c.isnumeric()])
print(numbers)
Output:
在上面的示例中,我们遍历字符串中的每个字符,判断是否是数字字符或数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法五:使用re.sub()方法
除了使用正则表达式来匹配数字外,我们还可以使用re.sub()
方法来替换非数字字符为空字符串,从而得到数字部分。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用re.sub()方法替换非数字字符
numbers = re.sub(r'\D', '', s)
print(numbers)
在上面的示例中,我们使用re.sub()
方法将非数字字符替换为空字符串,从而得到最终的数字字符串。
方法六:使用str.isdigit()方法
Python中的字符串对象还有一个str.isdigit()
方法,可以用来判断字符串是否只包含数字字符。我们可以结合这个方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 遍历字符串,提取数字
numbers = ''.join([c for c in s if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们遍历字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法七:使用str.isnumeric()方法
除了str.isdigit()
方法外,Python中的字符串对象还有一个str.isnumeric()
方法,可以用来判断字符串是否只包含数字字符。我们可以结合这个方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 遍历字符串,提取数字
numbers = ''.join([c for c in s if c.isnumeric()])
print(numbers)
Output:
在上面的示例中,我们遍历字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法八:使用str.replace()方法
如果字符串中的数字是以空格或其他分隔符分隔的,我们可以使用str.replace()
方法将分隔符替换为空字符串,从而得到数字部分。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用str.replace()方法替换分隔符
numbers = s.replace(' ', '')
print(numbers)
Output:
在上面的示例中,我们使用str.replace()
方法将空格替换为空字符串,从而得到最终的数字字符串。
方法九:使用str.translate()方法
Python中的字符串对象还有一个str.translate()
方法,可以用来进行字符替换操作。我们可以使用这个方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 定义一个字符映射表,将非数字字符替换为空字符串
table = str.maketrans('', '', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.')
# 使用str.translate()方法替换非数字字符
numbers = s.translate(table)
print(numbers)
Output:
在上面的示例中,我们定义了一个字符映射表,将非数字字符替换为空字符串,然后使用str.translate()
方法进行替换操作,得到最终的数字字符串。
方法十:使用str.strip()方法
如果字符串中的数字是被空格或其他空白字符包围的,我们可以使用str.strip()
方法去除空白字符,然后提取数字部分。
# 定义一个包含数字的字符串
s = " deepinout.com 12345 deepinout.com 67890 "
# 使用str.strip()方法去除空白字符
s = s.strip()
# 遍历字符串,提取数字
numbers = ''.join([c for c in s if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用str.strip()
方法去除字符串两端的空白字符,然后遍历字符串中的每个字符,判断是否是数字字符,最终得到数字字符串。
方法十一:使用str.split()方法
如果字符串中的数字是以空格或其他分隔符分隔的,我们可以使用str.split()
方法将字符串分割成多个部分,然后提取数字部分。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用str.split()方法分割字符串
numbers = ''.join([c for c in ''.join(s.split()) if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用str.split()
方法将字符串分割成多个部分,然后将分割后的字符串拼接起来,最后提取数字部分。
方法十二:使用str.join()方法
如果字符串中的数字是以空格或其他分隔符分隔的,我们可以使用str.join()
方法将分隔符替换为空字符串,从而得到数字部分。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用str.join()方法替换分隔符
numbers = ''.join(s.split())
print(numbers)
Output:
在上面的示例中,我们使用str.join()
方法将分隔符替换为空字符串,从而得到最终的数字字符串。
方法十三:使用列表推导式和isdigit()方法
我们还可以使用列表推导式和isdigit()
方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用列表推导式和isdigit()方法提取数字
numbers = ''.join([c for c in s if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式遍历字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法十四:使用列表推导式和isnumeric()方法
除了isdigit()
方法外,我们还可以使用列表推导式和isnumeric()
方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用列表推导式和isnumeric()方法提取数字
numbers = ''.join([c for c in s if c.isnumeric()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式遍历字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法十五:使用列表推导式和str.isdigit()方法
除了isdigit()
方法外,我们还可以使用列表推导式和str.isdigit()
方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用列表推导式和str.isdigit()方法提取数字
numbers = ''.join([c for c in s if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式遍历字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法十六:使用列表推导式和str.isnumeric()方法
除了isnumeric()
方法外,我们还可以使用列表推导式和str.isnumeric()
方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用列表推导式和str.isnumeric()方法提取数字
numbers = ''.join([c for c in s if c.isnumeric()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式遍历字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法十七:使用列表推导式和str.replace()方法
如果字符串中的数字是以空格或其他分隔符分隔的,我们可以使用列表推导式和str.replace()
方法将分隔符替换为空字符串,从而得到数字部分。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用列表推导式和str.replace()方法替换分隔符
numbers = ''.join([c for c in s.replace(' ', '') if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式遍历替换空格后的字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法十八:使用列表推导式和str.translate()方法
除了使用str.translate()
方法外,我们还可以使用列表推导式和str.translate()
方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 定义一个字符映射表,将非数字字符替换为空字符串
table = str.maketrans('', '', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.')
# 使用列表推导式和str.translate()方法替换非数字字符
numbers = ''.join([c for c in s.translate(table)])
print(numbers)
Output:
在上面的示例中,我们定义了一个字符映射表,将非数字字符替换为空字符串,然后使用列表推导式遍历替换后的字符串中的每个字符,得到最终的数字字符串。
方法十九:使用列表推导式和str.strip()方法
如果字符串中的数字是被空格或其他空白字符包围的,我们可以使用列表推导式和str.strip()
方法去除空白字符,然后提取数字部分。
# 定义一个包含数字的字符串
s = " deepinout.com 12345 deepinout.com 67890 "
# 使用str.strip()方法去除空白字符
s = s.strip()
# 遍历字符串,提取数字
numbers = ''.join([c for c in s if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用str.strip()
方法去除字符串两端的空白字符,然后遍历字符串中的每个字符,判断是否是数字字符,最终得到数字字符串。
方法十一:使用str.split()方法
如果字符串中的数字是以空格或其他分隔符分隔的,我们可以使用str.split()
方法将字符串分割成多个部分,然后提取数字部分。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用str.split()方法分割字符串
numbers = ''.join([c for c in ''.join(s.split()) if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用str.split()
方法将字符串分割成多个部分,然后将分割后的字符串拼接起来,最后提取数字部分。
方法十二:使用str.join()方法
如果字符串中的数字是以空格或其他分隔符分隔的,我们可以使用str.join()
方法将分隔符替换为空字符串,从而得到数字部分。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用str.join()方法替换分隔符
numbers = ''.join(s.split())
print(numbers)
Output:
在上面的示例中,我们使用str.join()
方法将分隔符替换为空字符串,从而得到最终的数字字符串。
方法十三:使用列表推导式和isdigit()方法
我们还可以使用列表推导式和isdigit()
方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用列表推导式和isdigit()方法提取数字
numbers = ''.join([c for c in s if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式遍历字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法十四:使用列表推导式和isnumeric()方法
除了isdigit()
方法外,我们还可以使用列表推导式和isnumeric()
方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用列表推导式和isnumeric()方法提取数字
numbers = ''.join([c for c in s if c.isnumeric()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式遍历字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法十五:使用列表推导式和str.isdigit()方法
除了isdigit()
方法外,我们还可以使用列表推导式和str.isdigit()
方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用列表推导式和str.isdigit()方法提取数字
numbers = ''.join([c for c in s if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式遍历字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法十六:使用列表推导式和str.isnumeric()方法
除了isnumeric()
方法外,我们还可以使用列表推导式和str.isnumeric()
方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用列表推导式和str.isnumeric()方法提取数字
numbers = ''.join([c for c in s if c.isnumeric()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式遍历字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法十七:使用列表推导式和str.replace()方法
如果字符串中的数字是以空格或其他分隔符分隔的,我们可以使用列表推导式和str.replace()
方法将分隔符替换为空字符串,从而得到数字部分。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用列表推导式和str.replace()方法替换分隔符
numbers = ''.join([c for c in s.replace(' ', '') if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用列表推导式遍历替换空格后的字符串中的每个字符,判断是否是数字字符,然后将数字字符拼接起来,得到最终的数字字符串。
方法十八:使用列表推导式和str.translate()方法
除了使用str.translate()
方法外,我们还可以使用列表推导式和str.translate()
方法来提取字符串中的数字。
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 定义一个字符映射表,将非数字字符替换为空字符串
table = str.maketrans('', '', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.')
# 使用列表推导式和str.translate()方法替换非数字字符
numbers = ''.join([c for c in s.translate(table)])
print(numbers)
Output:
在上面的示例中,我们定义了一个字符映射表,将非数字字符替换为空字符串,然后使用列表推导式遍历替换后的字符串中的每个字符,得到最终的数字字符串。
方法十九:使用列表推导式和str.strip()方法
如果字符串中的数字是被空格或其他空白字符包围的,我们可以使用列表推导式和str.strip()
方法去除空白字符,然后提取数字部分。
# 定义一个包含数字的字符串
s = " deepinout.com 12345 deepinout.com 67890 "
# 使用str.strip()方法去除空白字符
s = s.strip()
# 遍历字符串,提取数字
numbers = ''.join([c for c in s if c.isdigit()])
print(numbers)
Output:
在上面的示例中,我们使用str.strip()
方法去除字符串两端的空白字符,然后遍历字符串中的每个字符,提取数字部分。
方法二十:使用正则表达式
最后一种方法是使用正则表达式来提取字符串中的数字部分。
import re
# 定义一个包含数字的字符串
s = "deepinout.com 12345 deepinout.com 67890"
# 使用正则表达式提取数字
numbers = ''.join(re.findall(r'\d+', s))
print(numbers)
Output:
在上面的示例中,我们使用re.findall()
方法和正则表达式\d+
来提取字符串中的数字部分。