pexpect:如何匹配字符串

时间:2016-09-17 15:55:15

标签: python-2.7 pexpect

我正在尝试自动化Linux系统上的CLI菜单,我必须根据条件提供许多点。

我有': '的提示,我试图匹配(111.222.333.444)下面的字符串(打印在child.before中),

 111.222.333.444
:

如果字符串匹配,那么我需要可以发送另一个命令(sendlind)。但是我不知道如何用python pexpect来实现这一点。如果任何机构可以解释或提供一个例子,那将是很好的帮助。

1 个答案:

答案 0 :(得分: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;