2016-09-17 8 views
-1

LinuxシステムでCLIメニューを自動化しようとしていますが、多くの点で条件に基づいて提供する必要があります。pexpect:文字列の一致方法

文字列は、私は(別のコマンドを送ることができる必要が一致した場合、私は、以下の(child.beforeで印刷)': 'とプロンプト、私は一致する(111.222.333.444)をしようとしている文字列を持っている

111.222.333.444 
: 

sendlind)。しかし、私はこれをPythonのpexpectでどのように実現するかはわかりません。どのような身体でも説明や説明ができれば、助けになるはずです。

答えて

1

予想されるフォーマットに対して文字列をチェックするコンパクトコードの場合は、regexp(import "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;