我有这些字符串。
"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"]
答案 0 :(得分:5)
使用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-]*
序列的字符序列(由正向前端断言确保{{1} })