我有不同的产品,有4种不同的展示方式。
1 / ABC12345
ABB122456
ABD1236 / 1
1 / AEC1256 / 2
左侧的数字是发行版本,右侧的数字是配置版本。只要有此信息,我就将其存储。
所以对于第一行,我认为我可以做类似的事情
[rel_version,config_ver] = re.search(....,prod_no)
应该返回
rel_version = 1 and config_ver = None
在第四行中,我想返回 rel_version = 1,config_ver = 2
我将如何为此编写正确的搜索公式?也许re.split(...)也可以工作吗?谢谢您的帮助。
答案 0 :(得分:4)
尝试一下:
product = "1/AEC1256/2"
match = re.match("([0-9]*)/?([A-Z]+[0-9]+)/?([0-9]*)", product)
rel_version, product_code, config_ver = match[1], match[2], match[3]
说明:
([0-9]*)
将在开始时匹配零个或多个数字作为捕获组/?
将与可选的/
([A-Z]+[0-9]+)
将与中间的ABC12345
匹配/?
和([0-9]*)
用于末尾的数字这将以字符串形式获取版本-要进行解析,您可以调用int
:
rel_version = int(rel_version) if rel_version != "" else None