python提取字符串中的数
时间: 2023-05-28 18:01:37 浏览: 169
有许多方法可以提取字符串中的数字,下面列举几种常见的方法。
方法一:使用正则表达式
可以使用re模块中的正则表达式功能提取字符串中的数字。例如,下面的代码能够提取出字符串"abc123def"中的数字123:
import re
s = "abc123def"
nums = re.findall(r"\d+", s)
print(nums)
输出:
['123']
解释:r"\d+"表示匹配一个或多个数字,re.findall函数返回所有匹配的结果,以列表形式返回。
方法二:使用isdigit方法
可以使用字符串的isdigit方法检查每个字符是否为数字,并将其转换为整数。例如,下面的代码能够提取出字符串"abc123def"中的数字123:
s = "abc123def"
nums = []
i = 0
while i < len(s):
if s[i].isdigit():
j = i
while j < len(s) and s[j].isdigit():
j += 1
nums.append(int(s[i:j]))
i = j
else:
i += 1
print(nums)
输出:
[123]
解释:遍历字符串的每个字符,如果是数字,则向后寻找相邻的数字,直到非数字字符为止。将找到的数字字符转换为整数存入列表nums。
方法三:使用split方法
可以使用字符串的split方法将字符串按照数字和非数字字符分割成多个子串,取出其中的数字子串并转换为整数。例如,下面的代码能够提取出字符串"abc123def"中的数字123:
s = "abc123def"
nums = []
for substr in s.split():
if substr.isdigit():
nums.append(int(substr))
print(nums)
输出:
[123]
解释:将字符串按照非数字字符分割成多个子串,遍历每个子串,如果是数字,则转换为整数存入列表nums。
阅读全文