Python:从字符串中过滤正整数和负整数


问题内容

Python 3:给定一个字符串(一个方程式),返回一个正负整数列表。我尝试了各种正则表达式和列表理解解决方案,但无济于事。

给定方程式4 + 3x或-5 + 2y或-7y-2x返回:[4,3],[-5,2],[-7,-2]

输入

str = '-7y-2x'

输出

my_list = [-7, -2]

问题答案:

使用 re.findall
函数的简单解决方案:

import re

s = '-5+2y'
result = [int(d) for d in re.findall(r'-?\d+', s)]

print(result)

输出:

[-5, 2]

-?\d+-匹配 正负整数

原始字符串符号(r"text")使正则表达式保持理智。没有它,\正则表达式中的每个反斜杠(’ ‘)都必须以另一个反斜杠为前缀来转义它