使用正则表达式获取匹配词的索引

时间:2019-10-05 21:50:29

标签: python-2.7

我需要一个代码来搜索单词的一部分(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)并将其添加到列表中

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