Skip to main content
 首页 » 编程设计

python之如何用python将字符串拆分为2

2025年05月04日26java哥

我有这些字符串。

"LAKDOER 567-85 06D-1F" 
"QRT1 35-43 459-70 D" 
"50201 WSCFVGH 133 9H " 
"STREE VDERYG 8C LOP" 
"GG-STAR THIEOR- WL-515-67-26548H-9" 

我想拆分所有字符串并需要这样的输出。

["LAKDOER", "567-85 06D-1F"] 
["QRT1",  "35-43 459-70 D"] 
["50201 WSCFVGH", "133 9H "] 
["STREE VDERYG", "8C LOP"] 
["GG-STAR THIEOR-", "WL-515-67-26548H-9"] 

请您参考如下方法:

使用 re.split() 函数和特定的正则表达式模式:

import re 
 
lst = ["LAKDOER 567-85 06D-1F", "QRT1 35-43 459-70 D", "50201 WSCFVGH 133 9H ",  
       "STREE VDERYG 8C LOP", "GG-STAR THIEOR- WL-515-67-26548H-9" 
       ] 
 
pat = re.compile(r'\s(?=[a-z-]*[0-9])', re.I) 
for s in lst: 
    print(pat.split(s, 1)) 

输出:

['LAKDOER', '567-85 06D-1F'] 
['QRT1', '35-43 459-70 D'] 
['50201 WSCFVGH', '133 9H '] 
['STREE VDERYG', '8C LOP'] 
['GG-STAR THIEOR-', 'WL-515-67-26548H-9'] 

  • re.I - 正则表达式标志,告诉匹配不区分大小写
  • \s(?=[a-z-]*[0-9]) - 匹配空白字符 \s 后跟带有强制数字的字符序列 [0-9] 和可选的 [a-z-]* 序列(由肯定的先行断言 (?=...) 确保)