我有一个看起来像的字符串
CITS/CPU/0218/2305CITS/VDU/0218/2305CITS/KEY/0218/2305
要么
CITS/CPU/0218/2305CITS/VDU/0218/2305 CITS/KEY/0218/2305
要么
CITS/CPU/0218/2305 CITS/VDU/0218/2305 CITS/KEY/0218/2305
要么
CITS/CPU/0218/2305

我试图提出一个正则表达式,该正则表达式将与CITS/CPU/0218/2305之类的序列匹配,以便我可以将任何字符串拆分为仅与这种情况匹配的列表。
本质上,我只需要从传入的字符串中将*/*/*/*部分提取到列表中
我的密码

product_code = CITS/CPU/0218/2305CITS/VDU/0218/2305 CITS/KEY/0218/2305
(re.split(r'^((?:[a-z][a-z]+))(.)((?:[a-z][a-z]+))((?:[a-z][a-z]+))(.)(\\d+)(.)(\\d+)$', product_code))


有什么建议么?

最佳答案

在此处尝试使用re.findall

inp = "CITS/CPU/0218/2305CITS/VDU/0218/2305CITS/KEY/0218/2305"
matches = re.findall(r'[A-Z]+/[A-Z]+/[0-9]+/[0-9]+', inp)
print(matches)


打印:

['CITS/CPU/0218/2305', 'CITS/VDU/0218/2305', 'CITS/KEY/0218/2305']


如果您只想要第一个比赛,则只需访问它即可:

print(matches[0])

['CITS/CPU/0218/2305']

09-26 16:27