我有一个字符串可能看起来像 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']
