📜  Python|从混合字符串中分离正整数和负整数(1)

📅  最后修改于: 2023-12-03 15:04:23.772000             🧑  作者: Mango

Python | 从混合字符串中分离正整数和负整数

有时我们需要从混合字符串中获取正整数和负整数。Python提供了许多内置函数和模块来完成这个任务。以下是一些解决此问题的方法:

方法一:使用isdigit()函数和循环

该方法使用isdigit()函数来检查每个字符是否为数字,然后使用循环来提取数字。

string = "12,-34,56,7,-89"
result = []
temp = ""
for char in string:
    if char == ',' or char == ' ':
        if temp:
            result.append(int(temp))
            temp = ""
    else:
        if char.isdigit() or char == '-':
            temp += char
if temp:
    result.append(int(temp))
print(result)

这个程序会输出:[12, -34, 56, 7, -89]

方法二:使用正则表达式

另一种解决方案是使用Python内置的re模块来实现。re模块为我们提供了各种匹配模式和函数,可以帮助我们解决各种正则表达式问题。

使用正则表达式的过程如下:

首先,我们使用re.compile()函数编译正则表达式,然后使用match()search()函数在字符串中查找相应的模式。一旦我们找到了这个模式,就可以使用group()函数提取匹配的字符串。

下面是用正则表达式从混合字符串中提取正整数和负整数的示例代码:

import re

string = "12,-34,56,7,-89"
pattern = re.compile(r'-?\d+')
result = list(map(int, re.findall(pattern, string)))
print(result)

这个程序会输出:[12, -34, 56, 7, -89]

在上述示例中,我们使用re.compile()函数创建了一个正则表达式模式,用于匹配字符串中的数字。-?\d+表示可选的负号,后面跟着一个或多个数字。接下来,我们使用re.findall()函数从字符串中查找所有匹配的子字符串,并将它们转换为整数列表。

总结

无论您选择哪种方法,这两种方法都是在Python中提取正整数和负整数的简单方法。使用isdigit()和循环的方法更容易理解,而使用正则表达式则更为灵活和快速。在代码中选择其中一种方法即可。