В настоящее время я создаю игру Ansible, которая включает в себя добавление определенного диапазона портов в конфигурационный файл CSF.Python Regex не соответствует, если слово в строке
Строка в файле выглядит следующим образом:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2077,2078,2082,2083,2086,2087,2095,20960"
мне нужно регулярное выражение, которое будет соответствовать строку, начинающуюся с «=» TCP_IN только ЕСЛИ она не содержит диапазон портов уже. Например. это должно соответствовать:
portrange = 3000:5000
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2077,2078,2082,2083,2086,2087,2095,20960"
Но это не должно соответствовать:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2077,2078,2082,2083,2086,2087,2095,20960,3000:5000"
И то же время верно, если диапазон портов появляется в начале или в середине строки.
Есть ли способ сделать это?
Почему вы хотите использовать для этого регулярные выражения? – jonrsharpe
Предполагаются ли цифры в одной строке или на следующей строке? –
@jonrsharpe -> Я использую модуль 'lineinfile' от Ansible, который нуждается в регулярном выражении и использует регулярное выражение Python. В принципе, если 3000: 5000 не существует, оно должно добавить его в строку. Если он существует, он не должен найти эту строку. Таким образом, это только добавление, когда оно не существует. – Skowt