我有一个字母数字字符串列表,其中包含两个特殊字符 + 和 -。如下所示,输入代表我们公司产品的部件号。我想提取各个组件作为输出。大约有 45,000 种产品,下面的数据是部件号的示例。如何解析该字符串以区分 + 和 - 并提供正确的输出?
我不确定如何区分 - 表示的范围和 + 表示的加法。
您可以按“+”或“-”进行拆分并保留分隔符:
import re
def parse(data):
parts = re.split("([+-])", data)
# Initialize new list with first item in original list
result = [int(parts[0])]
for i in range(2, len(parts), 2):
if parts[i - 1] == '+':
# Just add the number
result.append(int(parts[i]))
else:
# Add all the numbers
result += range(int(parts[i - 2]) + 1, int(parts[i]) + 1)
return result
print(parse("1-3+5-6"))
输出:
[1, 2, 3, 5, 6]
注意:这将在错误输入时引发异常。