我正在从前端获取包含字符串和数字的字符串,例如"L'Oreal Paris L'Huile Nail Paint, 224 Rose Ballet, 13.5ml"
。
现在,我想将13.5ml
和13.5
分开作为一个值,将ml
分开作为另一个值,以将该值插入后端表。
答案 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