Взять с начала строки до определенного места. findall()
Данный код находит значения между строк 1 и 3900. Мне же нужно собрать айпишники без порта, как это правильно сделать?
x="""
10.0.0.4:3900Test1
10.40.0.5:3900Test2
10.20.0.5:3900Test3
"""
print ([j for i,j in re.findall(r"( :3900 | 1 )\s*(.*?)\s*(?!\1)(? :1 | :3900 )",x)])
Ответы (2 шт):
Автор решения: Incover
→ Ссылка
x="""
10.0.0.4:3900Test1
10.0.0.5:3900Test2
10.0.0.5:3900Test3
"""
res = ([j for i,j in re.findall(r"(:3900|\n)\s*(.*?)\s*(?!\1)(?: \n|:3900)",x)])
for elem in res:
print(elem)
Нужно было искать новую строку \n.