我需要一个代码来搜索单词的一部分(AIR- *),该代码以字符串形式重复然后返回其所有索引
我尝试了以下代码,但是我坚持使用哪种方法可以与re一起使用以获取所有匹配的单词索引
重新导入
def main(): crt.Screen.Synchronous = True
crt.Screen.Send('show cdp neig '+ '\r')
JGR=crt.Screen.ReadString("#")
strtolist=JGR.split(" ")
king = []
for xxx in strtolist:
if xxx != "":
king.append(xxx)
else:
continue
crt.Dialog.MessageBox(str(king))
z=[]
q=[]
word = "AIR-.*\w"
listostr = " ".join(king)
search= re.finditer(word,listostr)
crt.Dialog.MessageBox(str(search))
for ind,AP in enumerate(king):
if AP == word:
m = ind-5
z.append(AP[m])
n = ind-6
q.append(AP[n])
else:
continue
crt.Dialog.MessageBox(str(z))
crt.Dialog.MessageBox(str(q))
#x=re.findall(word,JGR)
#crt.Dialog.MessageBox(str(x))
main()
这是我在其中搜索的文本 名称1 演出0/20 1 S I WS-C3750X演出 名称2 Fas 2/2 33 T B I AIR-CAP26演出0 名称3 Fas 1/3 14 T B I AIR-CAP15演出0 名称4 Fas 0/1 13 T B I AIR-LAP12演出0 结果是,如果我找到AIR- *单词,则可以从其索引中转到接口索引(Gig 0/20,Fas 2 / 2.Fas 1 / 3.Fas 0/1)并将其添加到列表中
答案 0 :(得分:0)
我找到了解决方案,但需要增强一点,即在获得索引后,我需要在此索引之前再次搜索单词fas而不是使用固定的索引移动 字=“ AIR-。* \ w”
for ind,AP in enumerate(king):
if re.search(word, AP):
m = ind-5
z.append(m)
n = ind-6
q.append(n)
else:
continue
for i in z:
AP1.append(king[i])
for o in q:
AP2.append(king[o])
for H in range (len(AP1)):
fin.append(AP2[H] + AP1[H])