2016-09-17 72 views
-1

我試圖自動化Linux系統上的CLI菜單,在這個菜單中,我必須根據條件提供許多點。pexpect:如何匹配字符串

我有提示與': ',我想匹配(111.222.333.444)(在child.before印刷)以下字符串,

111.222.333.444 
: 

如果字符串匹配,然後我需要可再發送命令( sendlind)。但我不知道如何用python pexpect來實現這一點。如果任何機構可以解釋或提供一個例子,這將是很好的幫助。

回答

1

您可以使用regexp(導入「re」庫)來檢查字符串是否符合預期格式。這種方法不足以驗證IP是否有效。 檢查IP是否可以實現的最簡單方法是使用ping。

import re; 
# fmt1 accepts only IPs with 3-digit groups: 123.123.123.123 
fmt1='^([0-9]{3}\.){3}[0-9]{3}$'; 

# fmt2 accepts IPs with 1-3 digit groups e.g. 13.123.1.1 
fmt2='^([0-9]{1,3}\.){3}[0-9]{1,3}$'; 

exp=re.compile(fmt1); 

def chk(s): 
    x=exp.match(s); 
    if x: 
     print(s, ' = match'); 
     return 1; 
    else: 
     print(s, ' = mismatch'); 
     return 0;