我不知道如何分割字符串。
a = ['hostname1-Link1-2582',
'hostname2_1/3/10',
'hostname100',
'hostanme250_1']
以上是我的数据。我想捕获列表项在_或-之后是否包含连续的数字格式。
在这种情况下,我想从hostname1-Link1-2582 this捕获2582,从hostanme250_1 this捕获1。
第二个列表项和第三个列表项没有这种格式,所以我想忽略它们。
所以我希望输出应该像
输出= [2581,NA,NA,1]
任何人都可以帮助我拆分这些数据并将其存储到列表中。
我尝试过如下操作:
for i in a:
i.split('-')[2]
答案 0 :(得分:2)
这是使用正则表达式的一种方法。
例如:
import re
a = ['hostname1-Link1-2582',
'hostname2_1/3/10',
'hostname100',
'hostanme250_1']
result = []
for i in a:
m = re.search(r"(_|\-)(\d+)$", i)
if m:
result.append(m.group(2))
else:
result.append("NA")
print(result)
输出:
['2582', 'NA', 'NA', '1']
答案 1 :(得分:1)
这里是不使用正则表达式的解决方案。
output = list()
for elem in a:
elem = elem.replace('_', '-')
split = elem.split('-')
last_word = split[-1]
if last_word.isdigit():
output.append(last_word)
else:
output.append('NA')
输出:
['2582', 'NA', 'NA', '1']