Я пытаюсь разобрать вывод около ста строк. Формат этого выхода таков:Regex help in python
<random text> STATION "STATION_NAME_ONE": <random text>
<random text> IP Address: 0.0.0.0 <random text>
<SEVERAL LINES OF RANDOM TEXT>
<random text> STATION "STATION_NAME_TWO": <random text>
<random text> IP Address: 1.1.1.1 <random text>
<SEVERAL LINES OF RANDOM TEXT>
... and so on
Я знаю IP-адрес станции, которую я ищу. Используя IP-адрес, я пытаюсь создать регулярное выражение, которое найдет название станции. Название станции может быть любой длины и может содержать любое количество цифр/букв/символов подчеркивания. Название станции всегда будет предшествовать STATION и всегда будет сопровождаться двоеточием. IP-адрес всегда будет находиться в строке, следующей за именем станции, и ему всегда будет предшествовать IP-адрес :.
Обратите внимание, что есть несколько станций с разными названиями станций и IP-адресами. «Случайный текст» может иметь любую длину и содержать любой символ/номер/букву.
До сих пор мои попытки были:
re.search('(?<=STATION).*?(?=:.*IP Address: %s)' % sta_ip, output, re.DOTALL)
но, очевидно, это будет возвращать довольно много первое название станции каждый раз.
Как вы можете создать регулярное выражение, которое может найти указанное имя станции? Это возможно?
это, к сожалению, все еще возвращает первое имя станции, независимо от того, ip. –
Попробуйте мой отредактированный код, он должен работать как рекламируемый. – Josiah
Хммм это сработало. Спасибо. –