📅  最后修改于: 2023-12-03 14:57:15.100000             🧑  作者: Mango
在程序开发中,经常需要从字符串或列表中获取其中所有的数字。以下是几种常用方法:
正则表达式是一种强大的字符串处理工具,可以方便地从字符串中获取特定模式的内容。下面是获取字符串中所有数字的正则表达式:
import re
string = 'abc123def456ghi789'
numbers = re.findall('\d+', string)
print(numbers)
输出:
['123', '456', '789']
说明:
re.findall(pattern, string)
:使用正则表达式 pattern
在 string
中查找所有匹配的子字符串,并以列表形式返回。
\d
表示任意一个数字,+
表示重复一次或多次。
在字符串中判断每个字符是否为数字,如果是,则转换成数字类型并加入结果列表。以下是示例代码:
string = 'abc123def456ghi789'
numbers = []
for char in string:
if char.isdigit():
numbers.append(int(char))
print(numbers)
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
说明:
.isdigit()
:判断字符是否为数字,返回布尔值。
int(char)
:将字符转换成整型。
使用列表推导式遍历字符串中的字符,并使用字符串判断是否为数字,如果是,则转换成数字类型并放入结果列表中。以下是示例代码:
string = 'abc123def456ghi789'
numbers = [int(char) for char in string if char.isdigit()]
print(numbers)
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
说明:
[expression for item in iterable if condition]
,可以用一行代码实现循环构建列表的功能。以上三种方法都可以获取字符串中所有数字,具体哪种方法使用取决于具体的需求和实现复杂度。如果需要提取更复杂的模式,建议使用正则表达式。如果只需要简单地提取字符串中的单个数字,直接使用字符串方法即可。