3 回答
TA貢獻1854條經驗 獲得超8個贊
如果我理解正確,您想連續分割超過 2 個空格。為此,您可以使用re's ownsplit而不是處理sub. 表示超過 2的{3,}方法是從 3 到無限次:
import re
s = "OK DiskDrive SDX SAMSUNG MZNLN256HMHQ-000H1 SCSI\DIS"
print(re.split("\s{3,}", s))
給出:
['OK', 'DiskDrive', 'SDX SAMSUNG MZNLN256HMHQ-000H1', 'SCSI\\DIS']
TA貢獻1859條經驗 獲得超6個贊
您可以使用內置字符串方法執行此操作,方法split是注意您只想在那些較大的空間上拆分:
final_list = [l.strip() for l in my_line.split(' ') if l is not '']
# ['OK', 'DiskDrive', 'SDX SAMSUNG MZNLN256HMHQ-000H1', 'SCSI\\DIS...']
這if l is not ''只是確保您最終列表中不會出現任何空字符串。
TA貢獻1877條經驗 獲得超1個贊
使用 findall: 重新排列至少一個非空白字符、三個空白字符、零個或多個非空白字符或任何字符。
string="OK DiskDrive SDX SAMSUNG MZNLN256HMHQ-000H1 SCSI\DIS"
pattern="([\S]+\s{0,2}[\S\w]*)"
matches=re.findall(pattern,string)
for match in matches:
print(match)
輸出:
OK
DiskDrive
SDX SAMSUNG
MZNLN256HMHQ-000H1
SCSI\DIS
添加回答
舉報
