2024-09-28 22:25:11 发布
网友
我想将以下行转换为列表:
OK DiskDrive SDX SAMSUNG MZNLN256HMHQ-000H1 SCSI\DIS...
我的输出应该是:
['OK', 'DiskDrive', 'SDX SAMSUNG MZNLN256HMHQ-000H1', 'SCSI\DIS...']
我试过了,但没有成功得到我想要的:
List = re.sub("(\w+\s{0,2}+\w)", " ", line).split()
如果我理解正确,您希望在一行中拆分两个以上的空格。为此,您可以使用^{}自己的^{}而不是处理sub。表示超过2的方法是使用{3,},这意味着从3次到无限次:
sub
{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']
使用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
可以使用内置字符串方法^{}执行此操作,方法是注意只希望在那些较大的空间上拆分:
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 ''只会确保最终列表中不会出现任何空字符串
if l is not ''
如果我理解正确,您希望在一行中拆分两个以上的空格。为此,您可以使用^{} 自己的^{} 而不是处理
sub
。表示超过2的方法是使用{3,}
,这意味着从3次到无限次:给出:
使用findall:重新填充至少一个非空白字符、三个空白字符、零个或多个非空白字符或任何字符
输出:
可以使用内置字符串方法^{} 执行此操作,方法是注意只希望在那些较大的空间上拆分:
那
if l is not ''
只会确保最终列表中不会出现任何空字符串相关问题 更多 >
编程相关推荐