📅  最后修改于: 2023-12-03 14:49:27.880000             🧑  作者: Mango
在处理字符串时,有时会需要从字符串中提取出其中的整数。下面介绍几种方法供程序员们参考。
正则表达式是处理字符串的强大工具,可以用来匹配并提取出符合条件的文本。
import re
string = "Hello, 123 World! 456 Python 789."
pattern = r"\d+" # 匹配数字
result = re.findall(pattern, string) # 提取所有整数
print(result) # ['123', '456', '789']
在上述代码中,使用了re模块的findall方法来找到所有匹配正则表达式pattern的字符串。
isdigit()方法可以判断字符串中是否只包含数字字符,因此可以将字符串中的每个字母遍历一遍,将所有的数字字符转化为整数。
string = "Hello, 123 World! 456 Python 789."
num = ""
result = []
for char in string:
if char.isdigit():
num += char
elif num:
result.append(int(num))
num = ""
if num:
result.append(int(num))
print(result) # [123, 456, 789]
在上述代码中,遍历字符串中的每个字符,判断是否为数字字符,如果是则拼接到num变量中,如果不是则将num转化为整数追加到result列表中。
split()方法可以根据指定的分隔符将字符串分割成子字符串,当分隔符为非数字字符时,分割出的子字符串必定不包含整数,可以通过异常处理来过滤掉非整数子字符串。
string = "Hello, 123 World! 456 Python 789."
result = []
for item in string.split():
try:
num = int(item)
result.append(num)
except ValueError:
pass
print(result) # [123, 456, 789]
在上述代码中,使用split()方法分割字符串,并尝试将分割出来的每个子字符串转化为整数,如果无法转化则跳过该子字符串。
以上三种方法均可以提取出给定字符串中的所有整数,程序员根据实际情况选择即可。