2017-09-25 70 views
0

我正在嘗試解析配置文件並在Web UI上顯示輸出。但是,我寫的一些正則表達式會返回額外的結果。例如,正則表達式匹配以精確單詞而非類似單詞結束的行

lbvs = lb-vs-pr-443-v1-abhishek 
lb_vserver_binding = '^bind\s+lb\s+vserver\s+%s\s+([^\s+]+)' %(lbvs) 
for line in lb_file_memory: 
     if re.match(lb_vserver_binding, line): 
      grouped_data = re.search(lb_vserver_binding, line).groups() 
      data = grouped_data[0] 
      return data 

這將返回結果,但也會導致額外的輸出。 例如,

綁定磅的vserver LB-VS-PR-443-V1-阿布舍克巴克LB-SG-PR-443-V1-阿布舍克巴克

綁定磅的vserver LB-VS-PR-443 -V1-阿布舍克代理LB-SG-PR-443-V1-阿布舍克代理

它應該只返回第一個記錄,直到阿布舍克但它也返回阿布舍克代理

我應該如何限制這種?

請提供相同的建議。

+0

你能更詳細地描述你想搭配什麼?說它應該匹配第一行而不是第二行是不夠的。 – CAustin

+0

因此,當lbvs是'lb-vs-pr-443-v1-abhishek'時,我希望它只匹配以abhishek結尾的條目,就像返回的第一行有'lb-sg-pr-443-v1-abhishek 」。但是,它也會返回具有'abhishek-proxy','abhishek-st','abhishek-dc'的條目。 –

+0

所以比賽應該以'bind'開始並以'abhishek'結束? – CAustin

回答

0

如果你想與'abhishek'爲此匹配,你可以試試這個:

import re 
final_list = [line for line in lb_file_memory if re.findall("abhishek$", line)] 
相關問題