Я должен соответствовать конфигурации файловой системы из входного файла.Во входном файле я укажу регулярное выражение.Это регулярное выражение должно соответствовать выводу команды из брандмауэра.
Предположим, что вывод брандмауэра такой, как показано ниже
ssh 192.217.254.20 255.255.255.255 junk_string
ssh 192.217.248.0 255.255.252.0 junk_string
ssh 192.217.254.21 255.255.255.255 junk_string
ssh 192.217.254.25 255.255.255.255 junk_string
ssh 192.217.254.38 255.255.255.255 junk_string
ssh 192.217.254.42 255.255.255.255 junk_string
ssh 192.115.24.64 255.255.255.224 junk_string
ssh 192.217.240.0 255.255.252.0 junk_string
ssh 192.217.236.0 255.255.252.0 junk_string
ssh 192.217.255.78 255.255.255.255 junk_string
Я хочу сопоставить 9 строк, как указано в регулярном выражении.
(sh 192.217.((254.(20|21|25|38|42)|255.78) 255.255.255.255|(240|248|236).0 255.255.252.0) [^ ]*\r\n?){9}
Но правило не будет совпадать из-за7-я строка, когда я использую это регулярное выражение с re.match или re.search.
Есть ли способ проверить это регулярное выражение в любом порядке.Я имею в виду, что он должен соответствовать 9 строкам, даже если между ними есть нежелательные строки.
Обновление, вот как я его использую
if re.match(result_expected[command],actual_result,re.M|re.I):
if verbose == "True":
print("Command output and expected output Matched")
result_expected - is our regex I have given above.
actual_result - is the 10 lines which is output of the command executed on the firewall.
ок.Чтобы сделать его более понятным, мой шаблон работает для следующих 14 строк.
pattern='(ssh 192.(168.((254.(2|6|20|21|25|38|42)|255.78|255.91|255.92) 255.255.255.255|(240|248|236).0 255.255.252.0)|115.24.64 255.255.255.224) [^ ]*\r?\n?){14}'
ssh 192.168.240.0 255.255.252.0 junk_string
ssh 192.168.248.0 255.255.252.0 junk_string
ssh 192.168.236.0 255.255.252.0 junk_string
ssh 192.168.254.42 255.255.255.255 junk_string
ssh 192.168.254.25 255.255.255.255 junk_string
ssh 192.168.254.21 255.255.255.255 junk_string
ssh 192.168.255.78 255.255.255.255 junk_string
ssh 192.168.254.20 255.255.255.255 junk_string
ssh 192.168.254.38 255.255.255.255 junk_string
ssh 192.115.24.64 255.255.255.224 junk_string
ssh 192.168.254.2 255.255.255.255 junk_string
ssh 192.168.254.6 255.255.255.255 junk_string
ssh 192.168.255.91 255.255.255.255 junk_string
ssh 192.168.255.92 255.255.255.255 junk_string
Но когда мы добавляем еще одну строку
ssh 172.31.1.30 255.255.255.255 junk_string
, тогда регулярное выражение не выполняется для
ssh 192.168.240.0 255.255.252.0 junk_string
ssh 192.168.248.0 255.255.252.0 junk_string
ssh 192.168.236.0 255.255.252.0 junk_string
ssh 192.168.254.42 255.255.255.255 junk_string
ssh 192.168.254.25 255.255.255.255 junk_string
ssh 192.168.254.21 255.255.255.255 junk_string
ssh 192.168.255.78 255.255.255.255 junk_string
ssh 192.168.254.20 255.255.255.255 junk_string
ssh 192.168.254.38 255.255.255.255 junk_string
ssh 172.31.1.30 255.255.255.255 junk_string
ssh 192.115.24.64 255.255.255.224 junk_string
ssh 192.168.254.2 255.255.255.255 junk_string
ssh 192.168.254.6 255.255.255.255 junk_string
ssh 192.168.255.91 255.255.255.255 junk_string
ssh 192.168.255.92 255.255.255.255 junk_string
Мое требование - регулярное выражение должно работать, пока есть 14 строк.Даже если дополнительная строка идет до / после / между.
Как мы можем этого достичь?