如何在python中分隔数字和字符串?

时间:2019-05-22 11:32:12

标签: python python-3.x

我正在从前端获取包含字符串和数字的字符串,例如"L'Oreal Paris L'Huile Nail Paint, 224 Rose Ballet, 13.5ml"

现在,我想将13.5ml13.5分开作为一个值,将ml分开作为另一个值,以将该值插入后端表。

2 个答案:

答案 0 :(得分:1)

您可以尝试将re.findall与正则表达式模式\d+(?:\.\d+)?ml一起使用:

input = "L'Oreal Paris L'Huile Nail Paint, 224 Rose Ballet, 13.5ml"
matches = re.findall(r'(\d+(?:\.\d+)?)(ml)', input)
print(matches)

此打印:

[('13.5', 'ml')]

编辑:

要处理捕获已知的 list 单位,可以将上述正则表达式模式修改为以下内容:

\d+(?:\.\d+)?(?:GM|KG|LIT)

这使用更改来表示每个可能的单位,并且您可以根据需要添加新的单位。

答案 1 :(得分:0)

data = "L'Oreal Paris L'Huile Nail Paint, 224 Rose Ballet, 13.5ml, 14dl"

for i in range(len(data)-1):
    try:
        # if number is before letter  
        int(data[i])
        if data[i+1].isalpha():
            data = data[:i+1] + ' ' + data[i+1:] # add space between number and letter
    except:
        pass

print (data)

输出:

L'Oreal Paris L'Huile Nail Paint, 224 Rose Ballet, 13.5 ml, 14 dl