如何在Python上将Str = (2021GC110)的最后一个数字转换为Int

问题描述 投票:0回答:1

我是 Django 的初学者,我尝试转换 Str,其基础是 (2021(年) - CG(产品名称) - 1(ID 产品) -101 (var 产品)。

但是我需要变量的最后一个数字。

示例:

product 1: 2021CG1101
product 2: 2021CG1102

这是我的

view.py
:

    if serialNumberForm.is_valid():
        os = serialNumberForm.save(commit=False)
        Produto.numeroSerie = NumeroSerie.id
        os.numeroSerie = id
        lastProduct = NumeroSerie.objects.last()
        
        if lastProduct == None:
            prefix = datetime.date.today().year
            fix = product.nome[3:6]
            suffix = Produto.id
            var = 10
            os.serialNumber = str(prefix) + fix + str(suffix) + str(var)
            
        elif int(lastProduct.serialNumber[0:3]) != datetime.date.today().year:
            prefix = datetime.date.today().year
            fix = product.nome[3:6]
            suffix = Produto.id
            var = 10
            os.serialNumber = str(prefix) + fix + str(suffix) + str(var)
       
        else:
            prefix = datetime.date.today().year
            fix = product.nome[3:6]
            suffix = NumeroSerie.produto(os)
            var = (lastProduct.serialNumber[-1]) =+ 1
            os.serialNumber = str(prefix) + fix + str(suffix) + str(var)
        
        os.save()
        
python-3.x django django-views
1个回答
0
投票

这看起来像是正则表达式的任务:

import re
reg = re.compile(r"(?P<year>\d{4})(?P<group>[A-Z]{2})(?P<number>\d+)")
match = reg.match("2021CG1101")
if match is not None:
    result = match.groupdict()
    print(result['year'])
    print(result['group'])
    print(result['number'])
© www.soinside.com 2019 - 2024. All rights reserved.