Skip to main content
 首页 » 编程设计

python之python 上的正则表达式将字符串吐出到特定序列中

2025年05月04日35linjiqin

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