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

时间:2018-01-11 11:15:02

标签: python python-3.x python-2.7 split

我有这些字符串。

"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"]

1 个答案:

答案 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} })